[笔记][中国大学mooc][程序设计与算法(二) 算法基础][递归] 爬楼梯

题目

[笔记][中国大学mooc][程序设计与算法(二) 算法基础][递归] 爬楼梯_第1张图片

代码

#include
using namespace std;
int function(int stair){
     
	if(stair <= 1) return 1;
	else return function(stair-1) + function(stair-2);
}
int main(){
     
	int stair;
	cin >> stair;
	cout << function(stair);
	return 0;
} 

分析

这里着重非递归的角度思考,function(n)是n阶台阶的走法,向后倒退有一步和两步的选择,所以function(n)=function(n-1)+function(n-2),function(1)=1,function(2)=2,正是斐波那契数列,即本问题可以使用迭代解决。

你可能感兴趣的:(中国大学MOOC,程序设计与算法(二),算法基础,算法,数据结构)