c语言求1+2!+3!+...+n!的和。 输入 正整数n(n〈=10) 输出 1+2!+3!+...+n!的和+(结果为整数形式)
时间: 2023-11-17 10:00:24 浏览: 87
```c
#include <stdio.h>
double fact(int n) { // 定义计算阶乘的函数
double res = 1;
for (int i = 1; i <= n; i++) {
res *= i;
}
return res;
}
int main() {
int n;
double sum = 0; // 注意要用double类型存储和
printf("请输入n的值:");
scanf("%d", &n);
if (n <= 0) {
printf("n为正整数,请重新输入\n");
return 0;
}
for (int i = 1; i <= n; i++) {
sum += fact(i); // 调用函数计算阶乘并累加到和中
}
printf("1+2!+3!+...+n!的和为:%d\n", (int)sum); // 强制转换为整数输出
return 0;
}
```
--相关问题--:
1. 如何定义和调用函数?
2. 如何判断输入的数是否为
相关问题
C语言求1+2!+3!+...+N!的和。(N为1到10的整数) 输入 输入一个正整数N(N<=10) 输出 输出1+2!+3!+...+N!的和。
以下是C语言求1+2!+3!+...+N!的和的代码和实现效果:
```c
#include <stdio.h>
int main() {
int i = 0; //循环变量
int n = 0; //输入n
int ret = 1; //把每个数的阶乘计算后赋值给该变量,因为0乘任何数都为0,所以初始化为1。
int sum = 0; //外循环后将各个数的阶乘相加后赋值给该值,作为最终结果。
//输入:
scanf("%d", &n);//记得使用取地址符:&
//实现代码:
for (i = 1; i <= n; i++) //外循环:实现阶乘相加,相加到 n!
{
ret = ret * i;//依次相乘再赋值给变量ret
sum += ret; //将各数的阶乘相加后赋给该值
}
//打印:
printf("%d\n", sum);
return 0;
}
```
实现效果:
输入一个正整数N(N<=10),例如输入5,输出153。
求1+2!+3!+...+n!的和。 输入 正整数n(n〈=10) 输出 1+2!+3!+...+n!的和 (结果为整数形式)
求1+2!+3!+...+n!的和,其中n为正整数。
代码实现如下(C语言):
```
#include <stdio.h>
int main()
{
int n, i, j, sum = 0, fac = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
fac = 1;
for (j = 1; j <= i; j++)
{
fac *= j;
}
sum += fac;
}
printf("1+2!+3!+...+n!的和为:%d\n", sum);
return 0;
}
```
阅读全文