zoukankan      html  css  js  c++  java
  • 1.递归算法举例代码实现

    1.阶乘

    #include <bits/stdc++.h>
    using namespace std;
    int factorial(int n)
    {
        if(n==0||n==1)
        {
            return 1;
        }
        return n*factorial(n-1);
    }
    int main()
    {
        int n;
        cin>>n;
        cout<<factorial(n);
    }

    2.斐波那契

    #include <bits/stdc++.h>
    using namespace std;
    int fibonacci(int n)
    {
        if(n==0||n==1)
        {
            return 1;
        }
        return fibonacci(n-1)+fibonacci(n-2);
    }
    int main()
    {
        int n;
        cin>>n;
        cout<<fibonacci(n);
    }

    3.整数划分

    tip:输入整数n、m,现将n划分为若干个整数,求使n = a0+a1+a2+……(a0<=m)划分的方法数量。

    #include <bits/stdc++.h>
    using namespace std;
    int q(int n,int m)
    {
        if(n==1||m==1)
        {
            return 1;
        }
        if(n<m)
        {
            return q(n,n);
        }
        if(n==m)
        {
            return 1+q(n,n-1);
        }
        return q(n,m-1)+q(n-m,m);
    }
    int main()
    {
        int n,m;
        cin>>n>>m;
        cout<<q(n,m);
    }

    4.hanoi

    #include <bits/stdc++.h>
    using namespace std;
    int hanoi(int n,char a,char b,char c)
    {
        if(n==1)
        {
            cout<<n<<" : "<<"a"<<"-->"<<"b"<<endl;
        }
        else
        {
        hanoi(n-1,a,c,b);
        // move(a,c);
        cout<<n<<" : "<<"a"<<"-->"<<"c"<<endl;
        hanoi(n-1,c,b,a);
        }
    }
    int main()
    {
        int n,a,b,c;
        cin>>n;
        hanoi(n,a,b,c);
    }
  • 相关阅读:
    shell if 条件语句实践
    shell函数
    透视财富增长的秘密
    kvm虚拟化实践
    Linux驱动编程--基于I2C子系统的I2C驱动
    Makefile中=、:=、+=、?=的区别
    字符设备驱动结构与开发
    驱动分类
    为什么ARM的frq中断的处理速度比较快
    Linux设备驱动01
  • 原文地址:https://www.cnblogs.com/Chenury/p/14698075.html
Copyright © 2011-2022 走看看