用户:
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:

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);
}
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
评论
更好的解释方法:
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
评论