在编程中, 强数是一个特殊数字, 其每个数字的阶乘之和等于原始数字。例如:
!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-cint 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 numberlastDigit = count % 10;
// Keep the count of the sum of the factorial of the last digitsum += 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为止:
- 找到最后一位的阶乘并将其加到总和中。
- 从我们不需要的号码中删除最后一位数字(更新计数值)
【如何确定数字在C中是否强】编码愉快!
推荐阅读
- 跨平台与单平台开发-这是你应该知道的
- PHP 7.3提供的主要功能
- 如何解决C#异常(必须先将当前线程设置为单线程单元(STA)模式,然后才能进行OLE调用,请确保你的Main函数已在其上标记了STAThreadAttribute)
- 如何在Symfony 4中将Twig Extension注册为不带自动接线的服务
- 如何在Symfony 4中使用服务检索项目的根目录和其他容器参数
- 前端开发人员可以通过这些技巧来帮助避免倦怠
- 如何解决(解决方案)Google的Blockly Future Programmers Game(Bird Level)
- sync-diff数据比对工具
- 一文搞懂linux进程