050day(递归思想在问题分解上的应用(爬楼梯))

来源:互联网 发布:电信宽带刷新端口 编辑:程序博客网 时间:2024/06/05 04:11

172210704111-陈国佳总结《2017年11月29日》【连续050天】

标题:递归思想在问题分解上的应用(爬楼梯);

内容:用递归将问题分解为规模更小的子问题进行求解;

例题:爬楼梯,树老师爬楼梯,他可以每次走1级或者2级,输出楼梯的级数,求不同的走法数;

输入包含若干行,每行包含一个正整数N,代表楼梯级数,1<=N<=30;

输出不同的走法数,每一行输入对应一行;

解析:

n级台阶的走法=(先走一级后,n-1级台阶的走法)+(先走两级后,n-2级台阶的走法)

f(n)=f(n-1)+f(n-2);

边界条件:n=3,返回3;n=2,返回2;

int stairs(int n)
{
if(n==2)return 2;
if(n==1)return 1;
return stairs(n-1)+stairs(n-2);
}
int main()
{
int N;
while(cin>>N){
cout<<stairs(N)<<endl;
}
return 0;
}



明日计划:复习;

原创粉丝点击