用C语言求1!+3!+5!+…….+n!的和。
时间: 2024-04-28 18:18:19 浏览: 131
二级C语言真卷
可以使用循环结构和递归函数来求解这个问题。下面是一个使用循环结构的C语言程序:
```
#include <stdio.h>
int main()
{
int n, i, j, sum = 0, fac = 1;
scanf("%d", &n);
for (i = 1; i <= n; i += 2) {
for (j = 1; j <= i; j++) {
fac *= j;
}
sum += fac;
fac = 1;
}
printf("%d\n", sum);
return 0;
}
```
这个程序中,我们使用了两个循环,外层循环控制循环次数,内层循环计算阶乘,并将计算得到的阶乘值加入到总和中。
另外,还可以使用递归函数来计算阶乘,下面是一个使用递归函数的C语言程序:
```
#include <stdio.h>
int fact(int n)
{
if (n == 0 || n == 1) {
return 1;
} else {
return n * fact(n - 1);
}
}
int main()
{
int n, i, sum = 0;
scanf("%d", &n);
for (i = 1; i <= n; i += 2) {
sum += fact(i);
}
printf("%d\n", sum);
return 0;
}
```
这个程序中,我们定义了一个递归函数fact来计算阶乘,然后在主函数中使用for循环计算题目要求的和。
阅读全文