求阶乘n!的递归算法-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

求阶乘n!的递归算法

2018-07-17 16:21:02 1840 1
求阶乘n!的递归算法
取消 提交回答
全部回答(1)
  • 青衫无名
    2019-07-17 22:54:37

    #include
    double fun(int n);
    int main(void)
    {
    int n;
    printf("Enter n:");
    scanf("%d",&n);
    printf("%lf\n",fun(n));
    return 0;
    }
    double fun(int n)
    {
    if(n==0||n==1)
    return 1;
    else
    return n*fun(n-1);
    }

    程序调用自身称为递归( recursion).它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解.

    递归的能力在于用有限的语句来定义对象的无限集合。

    一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

    1

    ubuntu 14.04 linux c

    gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2

    2

    #include <stdio.h>

    #include <string.h>

    #include <stdlib.h>

    long factorial(int n)

    {

    if(n == 1)

    return 1;

    else

    return n*factorial(n-1);

    }

    int main(int argc,char *argv[])

    {

    int n = 0;

    if(argc != 2)

    {

    printf("input error,exit!!\n");

    return -1;

    }

    n = atoi(argv[1]);

    printf("%d! = %ld\n",n,factorial(n));

    return 0;

    }

    3

    root@linux:~/code# gcc -o factorial factorial.c 

    root@linux:~/code# ./factorial 6

    6! = 720

    0 0
相关问答

1

回答

如何构建机器学习算法?

问问小秘 2020-04-15 14:07:23 35617浏览量 回答数 1

25

回答

云服务器网站没有被百度和google收录或者收录少怎么办?

qilu 2014-05-20 18:13:19 30170浏览量 回答数 25

38

回答

干货分享:DBA专家门诊一期:索引与sql优化问题汇总

xiaofanqie 2014-12-25 15:13:38 92095浏览量 回答数 38

9

回答

换个角度理解正则表达式

jagen 2014-07-23 14:00:21 25237浏览量 回答数 9

37

回答

阿里官方Java代码规范标准《阿里巴巴Java开发手册》下载

管理贝贝 2017-02-10 15:14:36 77733浏览量 回答数 37

13

回答

【阿里云产品公测】开放搜索服务之 智能聊天实现

啊里新人 2014-10-21 10:41:20 33677浏览量 回答数 13

6

回答

弹性计算。。

d1004 2011-11-23 14:35:13 24697浏览量 回答数 6

26

回答

云数据库OceanBase的架构演进【精品问答集锦】

管理贝贝 2016-09-02 16:57:42 44294浏览量 回答数 26

24

回答

比赛_快速入门_4_19_update_仅供参考,思维不要受局限

小斯never 2015-03-22 18:22:43 33229浏览量 回答数 24

5

回答

C语言算法 【精品问答合集】

我是管理员 2018-07-13 15:51:28 27071浏览量 回答数 5
+关注
10077
文章
2994
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载