开发者社区> 问答> 正文

C语言如何用递归算法求1!+2!+3!+...n!

C语言如何用递归算法求1!+2!+3!+...n!

展开
收起
知与谁同 2018-07-19 19:00:44 4141 0
2 条回答
写回答
取消 提交回答
  • 12535
    一楼的基本上正确,不过 定义 s 的时候需要用静态的,如下:
    long sum(int n){
    static long s = 0;
    if(n == 1) return 1;
    s =s + n*sum(n-1);
    return s;
    }
    返回值就是阶乘之和
    2019-07-17 22:54:29
    赞同 展开评论 打赏
  • 云栖社区聚能聊、问答管理员~发福利、搞怪,八卦我来,论技术、发话题、写博客你上!
    #include<stdio.h>
    float fun(int n)
    {
    if(n==1) return 1;//如果n=1则直接返回1
    return n*fun(n-1);//否则返回n*fun(n-1),以此计算n的阶乘,这条语句就是递归体
    }
    void main()
    {
    int i;
    float sum=0;
    for(i=1;i<=n;i++){
    sum+=fun(i); //循环调用,用sum累计
    }
    printf("sum=%.2f\n",sum);
    }

    -------------------------

    long sum(int n){
    long s=0;
    if(n==1) return 1;
    s=s+n*sum(n-1)
    return s;
    }

    2019-07-17 22:54:29
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
图解算法小抄 立即下载
面试常考算法 立即下载
超全算法笔试-模拟题精解合集 立即下载