美文网首页算法
递归算法---阶乘(一)

递归算法---阶乘(一)

作者: 王小丫子 | 来源:发表于2019-02-20 09:22 被阅读0次

递归算法:就是一种直接或者间接调用自身的算法。
实现过程:一般通过函数或者子过程来完成,在函数或子过程的内部,编写代码直接或者间接地调用自己,即可完成操作
规则:把求解问题转化为比原来规模小且类别相同的问题,通过多次的递归调用,最终求出最小问题的解,再通过最小问题的解返回到上次调用,求出次小问题的解;然后在返回上层调用,这样不断重复,最后就可以得到最终问题的解。
本质:循环【只是这种循环它不是使用程序设计语言来实现的而是使用循环调用函数或者子过程的自身实现的】
【代码实现】

#include <iostream>
using namespace std;

/****************************阶乘******************************/
int factorial(int N){
    if (N <= 1) {
        return N;
    }
    return N*factorial(N-1);
}

int main(int argc, const char * argv[]) {
    int resultNum = factorial(6);
    cout<<"最终结果"<<resultNum<<endl;
    return 0;
}

【逻辑分析】

image.png
【递归思想体现】求解问题:6!=6x5x4x3x2x1 问题拆分转化过程:6!=6x5!=>5!=5x4!=>4!=4x3!=>3!=3x2!=>2!=2x1!=>1!=1(最小问题) 然后从最小问题返回次小问题2!=2x1层层返回直到最终返回求解问题

相关文章

  • C++ 递归算法

    递归算法,尾递归算法求阶乘!

  • golang学习笔记之-递归算法

    递归算法求5的阶乘

  • 递归算法---阶乘(一)

    递归算法:就是一种直接或者间接调用自身的算法。实现过程:一般通过函数或者子过程来完成,在函数或子过程的内部,编写代...

  • 专题:递归与累加阶乘

    递归实现累加和阶乘 累加核心代码: 阶乘的核心代码: 阶乘的非递归实现思路: 阶乘的非递归实现核心代码:

  • 结合LeetCode题库分析递归算法(一)

    递归算法:即一个程序反复调用自身的算法。 以一个经典阶乘为例,我们都知道阶乘 直到0!= 1 是我们都知道的,也就...

  • 【python】递归思想和快速排序法

    一、递归思想 递归思想,其实就是自己调用自己。 上图中,我们写了个简单的递归函数,实现阶乘的算法;但程序会报错,显...

  • 递归算法:求阶乘

    1、环境配置: 系统:win10 编程语言:C++ 编译器:DevC++ 2、算法思想: 将n的阶乘看成是n乘n-...

  • 递归实现 n!

    递归的特点: 自己调用自己 设定终止条件 优点:算法简单缺点:效率低下 用递归实现阶乘 n! 用 for 循环实现...

  • OC阶乘计算

    OC中的阶乘算法,原理就是递归。在OC中也可以用c语言来实现。

  • python递归求阶乘的方法

    python递归求阶乘的方法 阶乘:例如 5! 指的是“5的阶乘”,即 5! = 1*2*3*4*5。 “递归”就...

网友评论

    本文标题:递归算法---阶乘(一)

    本文链接:https://www.haomeiwen.com/subject/pshcyqtx.html