猫史档案馆


递归基础教程

用户:fx已退fx已退查看:5 回复:4 评论:5 创建时间:2021-07-29T16:21:51


概念:

程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

题目:

楼梯有 n 级。每次你只能爬 1 级或者 2 级,那么你有多少种方法爬到楼梯的顶部?(开始的时候在0级楼梯,顶级在第n级。

首先来分析题目,有俩种情况:

1.爬1级

2.爬2级

总结一下,就是从0级到n级的方法=前两级的方法和

然后举例:

从0级爬到3级的方法就等于爬到1级的方法+爬到2级的方法(1级和2级是特殊的,分别是1和2,不信就算算!)

就是1+2=3!

4级就是2+3=5!

5级就是3+5=8!

......

最后,上代码:

kitten:

center_image

python:

 

c:

#include <iostream>
using namespace std;
int Fbonaqi(int n);
int main()
{
    int n;
    scanf("%d",&n);
    printf("%d",Fbonaqi(n));
    return 0;
}
int Fbonaqi(int n)                                      
{                           
   return n<=2?n:Fbonaqi(n-1)+Fbonaqi(n-2);
}

c++:

#include <iostream>
using namespace std;
int Fbonaqi(int n);
int main()
{
    int n;
    cin>>n;                                  
    cout<<Fbonaqi(n)<<endl;
    return 0;
}
int Fbonaqi(int n)                                      
{                     
    return n<=2?n:Fbonaqi(n-1)+Fbonaqi(n-2);
}


回复

上一页1 页 / 共 1下一页
fx已退fx已退

#include<stdio.h>
int Fbonaqi(int n);
int main()
{
    int n;
    scanf("%d",&n);
    printf("%d",Fbonaqi(n));
    return 0;
}
int Fbonaqi(int n)                                      
{                           
   return n<=2?n:Fbonaqi(n-1)+Fbonaqi(n-2);
}

点赞0


评论


11111111111121111111111112

爬楼梯是递推吧

点赞0


评论


一个STUB用户_6923702一个STUB用户_6923702

更好的解释方法:

2的方法:

2

3个的方法:

3-1 3-2

2 + 1

4个的方法:

4-1 4-2

左边用3的方法->3 右边用2的方法->2

5

5个的方法:

5-2 5-1

3的方法->3 4的方法->5

点赞1


评论


疯狂的小猪佩皮666疯狂的小猪佩皮666

emotion_编程猫_点赞

点赞1


评论