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);
    }
  • 相关阅读:
    编程心得
    PC缺少一个或多个网络协议 qq可登录(win10)
    系统启动和内核管理
    实现Internet架构的dns解析
    文本处理三剑客之AWK
    SHELL脚本编程进阶
    网络协议和管理笔记
    基础知识
    进程和计划任务
    710
  • 原文地址:https://www.cnblogs.com/Chenury/p/14698075.html
Copyright © 2011-2022 走看看