开发者社区> 问答> 正文

递归算法的是怎么回事?

感觉好难啊.帮我讲一下思考过程

展开
收起
知与谁同 2018-07-21 17:52:21 1217 0
2 条回答
写回答
取消 提交回答
  • TA有点害羞,没有介绍自己...
    http://baike.baidu.com/view/96473.htm
    2019-07-17 22:55:45
    赞同 展开评论 打赏
  • 杀人者,打虎武松也。
    和迭代差不多,只是通过定义和调用函数来实现迭代
    把事情分解成相同的步骤重复执行直到符合某一条件时结束,再反过来递推到最初的状态,问题就解决了

    比如定义(用的是C语言)
    int fun(int a)
    {
    if(a==1) return 1;
    else
    {
    a=a*fun(a-1);
    return a;
    }
    }
    在fun里面再定义fun,这个fun都只做一件事,把a的内容和fun(a-1)相乘作为返回值
    这里要有个终止条件,即a=1时返回值为1,这样,如果我给最初的fun里的a赋值为5,第一步为5*fun(4),而执行fun(4)的结果为4*fun(3)....直到fun(2)=2*fun(1)即fun(2)=2*1,再把fun(2)代回去,得fun(3)=3*2*1,最后倒推的结果为fun(5)=5*4*3*2*1,即这个递归函数实现了a的阶乘fun(a)=a!

    够详细了吧,觉得好的话给我加分吧 ^_^
    2019-07-17 22:55:45
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
面试常考算法 立即下载
图解算法小抄 立即下载
低代码开发师(初级)实战教程 立即下载