小明爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。
例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级;也可以第一次走两级,第二次走一级,一共3种方法。
###代码如下###
#include <iostream>
using namespace std;
int walk(){
int n;
if (n == 1)
return 1;//走一阶的方法数
else if (n == 2)
return 2;//走两阶的方法数
else
return walk(n-1) + walk(n-2);
}
int main (){
int n;
int K;//数据组数
cin>>K;
while (cin>>n)
{
for(int i=2;i<=n;i++)
{
walk(n);
}
cout << walk(n) << endl;//总方法数
}
return 0;
}
输入:3 5 8 10
输出:8 34 89
解析:3是输入的数组数量,5,8,10是楼梯阶数,
走一阶的方法是1种,走两阶是2种,走三阶是3种,
设置个walk()函数用来存放爬楼梯的方法数,
先算一种阶数情况下的方法数,然后递归出所有的阶数下的方法数,依次输出。