在b站上学习c语言,然后跟着教程里的题自己编写的代码。
1.计算1!+2!+3!...+n!
#include<stdio.h>
int jc2(int n)
{
static int mul = 0;
if(n>1)
{
mul = n*jc2(n-1);
}
else {
return 1;
}
}
//计算每个数字的阶乘
int jc(int m)
{
int sum = 1;
int i;
for (i = 2; i <= m; i++)
{
int mul = jc2(i);
sum = sum+mul;
}
return sum;
}
//这里计算各个阶乘的和,0和1的阶乘都为1,所以直接从2开始算
int main()
{
int a;
scanf_s("%d", &a);
int i=jc(a);
printf("%d", i);
return 0;
}
这道题用了递归以及嵌套调用,算是融合了一下前面的知识,真正的答案都不需要创建函数,就用for循环就能搞定。
这篇博客介绍了如何使用C语言通过递归和循环来计算1到n的阶乘之和。代码中包含了两个辅助函数,jc2用于计算阶乘,jc用于计算阶乘和,最后在main函数中读取用户输入并输出结果。虽然可以简化为仅使用for循环实现,但此例展示了递归在编程问题解决中的应用。
384

被折叠的 条评论
为什么被折叠?



