开发者社区> 问答> 正文

c语言算n的阶乘的递归算法

c语言算n的阶乘的递归算法

展开
收起
知与谁同 2018-07-19 16:54:33 3663 0
3 条回答
写回答
取消 提交回答
  • int fn(n)
    {
    int y;
    if(n<0){ printf("error");return -1;}
    if(n==0) return 1;
    else
    {
    y=fn(n-1)
    return n*y;
    }

    }
    2019-07-17 22:54:25
    赞同 展开评论 打赏
  • 社区管理员
    #include<stdio.h>

    int fac(int n)
    {
    if(n < 0)
    {
    printf("error!\n");
    return -1;
    }
    else if(n == 0)
    return 1;
    else
    return fac(n- 1) * n;;
    }

    void main()
    {
    int n = 0;
    printf("请输入n:");
    scanf(%d",&n);
    printf("%d的阶乘是%d",n,fac(n));
    }

    随手写的,没有编译,可能有小错误
    2019-07-17 22:54:25
    赞同 展开评论 打赏
  • 阿里云开发者社区运营负责人。原云栖社区负责人。

    思路:递归求阶乘函数,如果输入的参数等于1则返回1,否则返回n乘以该函数下次递归。

    参考代码: #include<stdio.h>
    int fun(int n)
    {
    if(n==1||n==0) return 1;//如果参数是0或者1返回1
    return n*fun(n-1);//否则返回n和下次递归的积
    }
    int main()
    {
    int n;
    scanf("%d",&n);
    printf("%d\n",fun(n));
    return 0;
    }
    /*
    5
    120
    */

    2019-07-17 22:54:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载