题目描述 求阶乘和 输入 多组测试数据。每组一行,输入一个整数n, 1 <= n <= 10 输出 每组数据输出一行,计算1!+2!+...+n!的和 样例输入 Copy 1 3 样例输出 Copy 1 9 用C语言编写
时间: 2024-11-03 21:17:01 浏览: 84
06-14上机真题及答案1
题目要求你编写一个C语言程序,用于计算从1到给定整数n的所有正整数的阶乘之和。阶乘是一个数的所有小于及等于它的正整数的积,比如5的阶乘(5!)就是5 * 4 * 3 * 2 * 1。
以下是解决这个问题的一个简单C语言函数实现:
```c
#include <stdio.h>
// 计算阶乘的辅助函数
unsigned long long factorial(int n) {
unsigned long long fact = 1;
for (int i = 1; i <= n; ++i) {
fact *= i;
}
return fact;
}
int main() {
int n;
while (scanf("%d", &n) == 1 && n >= 1 && n <= 10) { // 输入验证
unsigned long long sum = 0;
for (int i = 1; i <= n; ++i) {
sum += factorial(i);
}
printf("%llu\n", sum); // 输出结果
}
return 0;
}
```
在这个程序中,我们首先定义了一个`factorial()`函数来计算阶乘,然后在主函数`main()`里,通过循环读取输入的n值,并累加每个数的阶乘。最后,将总和打印出来。
阅读全文