用递归函数求一到十的阶乘和,即求1!+2!+...+10!

新手小白学c,请用简单一点的方法,最好加上注释。

第1个回答  推荐于2017-11-18
#include "stdio.h"
int func(int n){
return n!=1 ? n*func(n-1) : 1;
}

int main(int argc,char *argv[]){
int s,i;
for(s=0,i=1;i<11;s+=func(i++));
printf("The result is %d\n",s);
return 0;
}

本回答被网友采纳
第2个回答  2017-11-18
#include <stdio.h>
int factor (n) //求阶乘函数,对n求阶乘,写出形式参数!
{
int s=1,k;
for(k=1;k<=n;k++)
{
s=s*k;
}
return s;
}

void main( )
{
int i, sum=0;

for(i=1;i<=10;i++)
sum=sum+factor(i);

printf("1!+2!+…+10!=%d\n",sum);
}
第3个回答  2015-06-11
int sum=0;
void f(int x)
{
if(x>10) return;
int i,te=1;
for(i=1;i<=x;i++)
te*=i;
sum+=te;
f(x+1);
}
int main()
{

f(1);
printf("%d\n",sum);

return 0;
}本回答被网友采纳
第4个回答  2015-09-30
1!+2!+...+10!=1+1*2+1*2*3+……+1*2*3*4*5*6*7*8*9*10=1+2+6+24+120+720+5040+40320+362880+3628800=4037913
第5个回答  2018-10-15
//递归求值;代码如下
double fact( int n )
{
double result;
if(n==1||n==0)
result=1;
else
result=fact(n-1)*n;
return result;
}
double factsum( int n )
{
double result;
if(n==1)
result=1;
else if(n==0)
result=0;
else
result=factsum(n-1)+fact(n);
return result;