题目描述
Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。 但年幼的他一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法。
输入
输入包括多组数据。 每组数据包括一行:N(1≤N≤40)。 输入以0结束
输出
对应每个输入包括一个输出。 为redraiment到达第n阶不同走法的数量。
样例输入 Copy
1 3 0
样例输出 Copy
1 3
代码如下:
#include<iostream>
using namespace std;
#include<string>
int main()
{
//1阶是1种 2阶是2种 3阶是3种 4阶是五种 5阶是8种
//第三个等于前两个数之和
int n = 0;
int a0 = 0, a1=1, a2 = 0;
while (cin >> n)
{
a0 = 0;//初始化
a1 = 1;//初始化
if (n == 0)
{
break;
}
for (int i = 0;i < n;i++)
{
a2 = a1 + a0;
a0 = a1;
a1 = a2;
}
cout << a2 << endl;
}
return 0;
}