个性化阅读
专注于IT技术分析

如何确定数字在C中是否强

在编程中, 强数是一个特殊数字, 其每个数字的阶乘之和等于原始数字。例如:

!1 + !4 + !5 = 145

不, 那个!不是编程的否定一元运算符, 这意味着数学中的阶乘数(在此处了解如何在C中了解数字的阶乘)。在本文中, 我们将向你介绍C语言中一个非常有用的代码段, 可让你确定数字是否为强。

实现

对于新手来说, 确定数字是否强的代码逻辑可能有些棘手, 但是一旦解释, 这很容易做到。我们的确定数字强的代码如下:

#include<stdio.h>

// Factorial function that returns the factorial of a given integer
// For more information about factorials: https://ourcodeworld.com/articles/read/857/how-to-get-the-factorial-of-a-number-in-c
int fact(int n){
	int i, fac=1;

	for(i=1;i<=n;++i){
		fac*=i;
	}

	return fac;
}

int main(){
	int number, lastDigit, sum, count;
    sum = 0;

	printf("Provide the number to determine:");
	scanf("%d", &number);

	count = number;

	while(count != 0){
        // Obtain the last digit of the number
		lastDigit = count % 10;

        // Keep the count of the sum of the factorial of the last digit
		sum += fact(lastDigit);

		// Divide the count to know when the loop should end
		// e.g 145/10 = 14.5
		// e.g 14.5/10 = 1.45
		// e.g 1.45/10 = 0.145
		// This means the loop of 145, will iterate 3 times (because 0.145/10 = 0.014499999999999999).
		count = count / 10;
	}
    
    // If the sum is equal to the given number, it's strong !
	if(sum == number){
		printf("The number is Strong");
	}else{
		printf("The number is NOT strong");
	}

	return 0;
}

代码的工作方式如下:我们的程序将提示用户输入一个整数, 该整数将存储在number变量中。现在, 出于计算目的, 将数字的值分配给另一个我们称为count的变量。我们还定义了一个名为sum的变量, 它将包含给定数字的所有数字的阶乘之和, 该变量的初始值为0。

为了数学上找到数字的最后一位数字, 你可以通过取模运算符来执行此操作, 处理后的数字的其余部分将是最后一位数字, 我们将此值存储在lastDigit变量中。现在, 我们将创建一个循环, 该循环将做2件事, 直到count变量等于0为止:

  1. 找到最后一位的阶乘并将其加到总和中。
  2. 从我们不需要的号码中删除最后一位数字(更新计数值)

最后, 循环结束后, 你将能够比较数字是否强, 在代码开始时将sum变量与给定数字进行比较, 就是这样!

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何确定数字在C中是否强

评论 抢沙发

评论前必须登录!