非递归方式:
#include<stdio.h>
int factorial(int n)
{
int i;
int count = 1;
for(i = 1; i <= n; i++)
{
count = count * i;
}
return count;
}
int sum(int n)
{
int m = 0;
int i;
for(i = 1; i <= n; i++)
{
m = m + factorial(i);
}
return m;
}
int main()
{
int n = 10;
printf("%d \n", sum(n));
return 0;
}
//输出:4037913
递归方式:
#include<stdio.h>
int factorial(int n)
{
int i;
int count = 1;
for(i = 1; i <= n; i++)
{
count = count * i;
}
return count;
}
int sum(int n)
{
if(n == 1)
return 1;
else
return factorial(n) + sum(n - 1);
}
int main()
{
int n = 10;
printf("%d \n", sum(n));
return 0;
}
//输出:4037913
本文详细介绍了使用C语言通过非递归和递归两种方式实现阶乘求和的方法。非递归方式通过循环计算从1到n的阶乘并累加求和,递归方式则采用递归调用自身的方式逐步计算直至n等于1为止。两种方法最终都能正确计算出1到10的阶乘之和为4037913。

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



