C语言输入正整数计算各位阶乘和并判断是否为阶乘和数
时间: 2024-02-11 21:08:57 浏览: 79
好的,我可以帮你解答这个问题。首先,我们可以用C语言中的scanf函数获取用户输入的一个正整数n。接着,我们可以编写一个函数来计算一个数的各位阶乘和,具体实现如下:
```c
int factorial(int n) {
int sum = 0;
while (n > 0) {
int digit = n % 10;
int fact = 1;
for (int i = 1; i <= digit; i++) {
fact *= i;
}
sum += fact;
n /= 10;
}
return sum;
}
```
接下来,我们可以在主函数中调用这个函数,并判断计算出来的各位阶乘和是否等于原数n。如果相等,则说明n是一个阶乘和数,否则不是。完整代码如下:
```c
#include <stdio.h>
int factorial(int n) {
int sum = 0;
while (n > 0) {
int digit = n % 10;
int fact = 1;
for (int i = 1; i <= digit; i++) {
fact *= i;
}
sum += fact;
n /= 10;
}
return sum;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
int sum = factorial(n);
if (n == sum) {
printf("%d是一个阶乘和数\n", n);
} else {
printf("%d不是一个阶乘和数\n", n);
}
return 0;
}
```
希望能够帮到你!
阅读全文
相关推荐














