c语言 1!+2!+3!+……20! 用函数递归法

如题所述


#include<stdio.h>
#include<stdlib.h>

int jc(int n)
{
int i = 1,result=1;
for (i = 1; i <= n; i++)
{
result *= i;
}
return result;
}
int jcsum(int n)
{
if (n== 1)
{
return 1;
}
else
{
return jc(n) + jcsum(n - 1);
}

}
void main()
{

int result = 0;
result = jcsum(20);
printf("1到20阶乘和结果为:%d\n", result);
system("pause");
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-10
#include<stdio.h>
int main()
{
int i,j,n;
double e=0;
for(i=1;i<=20;i++)
{
for(n=1,j=1;j<=i;j++)
{
n*=j;
}
e+=n;
}

printf("%lf\n",e);
return 0;
}本回答被网友采纳