用C编译输入一个整数,计算该数各位的数字的阶乘之和
时间: 2024-11-03 11:23:54 浏览: 31
在C语言中,要实现这个功能,你可以编写一个函数来计算单个数字的阶乘,然后遍历给定整数的所有位并求和。下面是一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
// 计算一位数的阶乘
int factorial_of_digit(int digit) {
if (digit == 0) return 1;
return digit * factorial_of_digit(digit - 1);
}
// 遍历每一位并求和阶乘
unsigned long long sum_of_digits_factorials(int num) {
unsigned long long result = 0;
while (num > 0) {
int last_digit = num % 10; // 取最后一位
result += factorial_of_digit(last_digit); // 累加阶乘
num /= 10; // 移除最后一位
}
return result;
}
int main() {
int input;
printf("请输入一个整数:");
scanf("%d", &input);
unsigned long long sum = sum_of_digits_factorials(input);
printf("该数各位的数字阶乘之和为:%llu\n", sum);
return 0;
}
```
在这个程序中,`factorial_of_digit` 函数递归地计算一个数字的阶乘,而 `sum_of_digits_factorials` 函数则逐个处理输入整数的每一位,并将它们的阶乘累加到结果上。
阅读全文