C语言怎样用递归方法编写程序 求s=1!+2!+3!+...10!

如题所述

下面是测试的结果:

测试结果

思路:先通过程序获得阶乘的值,之后再将阶乘相加,求阶乘时和相加时都用递归的写法

首先是求阶乘:

int factorial(int index){

    int sum = 0;

    if (index == 1){

        sum = 1;

    }else{

        sum = index * factorial(index-1);

    }

    return sum;

}

之后再求和:

int add_recursion(int maxnum){

    int sum = 0;

    if (maxnum == 1){

        sum = factorial(maxnum);

    }else{

        sum = factorial(maxnum) + add_recursion(maxnum-1);

    }

    return sum;

}

下面是完整的代码:

完整代码

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-09

#include <stdio.h>

int n,t=1,s=0;

void sum_fac(int k)

{if(k<=n)

 {s+=t;

  t*=k;

  sum_fac(k+1);

 }

}

int main ()

{ scanf("%d",&n);

  sum_fac(1);

  printf("%d\n",s);

  return 0;

}

第2个回答  2022-08-10

c语言代码如下:

int fun(int n){

    int i,sum=1;

    if(n==1)

    return 1;

    else

    {

        for (i=1;i<=n;i++)

        sum=sum*i;

    }

    return  sum+fun(n-1); 

}

int main(){

printf("%ld",fun(10));

return 0;

}

结果: