题目描述
Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。 但年幼的他一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法。
输入
输入包括多组数据。 每组数据包括一行:N(1≤N≤40)。 输入以0结束
输出
对应每个输入包括一个输出。 为redraiment到达第n阶不同走法的数量。
样例输入 Copy
1
3
0
样例输出 Copy
1
3
注:
这道题其实就是斐波那契数列:1 2 3 5 8 13 21
从第三项开始,每一项等于前两项的和
#include<stdio.h>
int main()
{
int a, b, c, i, n;
while(scanf("%d",&c),c!=0)
{
a=1;b=2;
if(c==1)
printf("1\n");
else if(c==2)
printf("2\n");
else
{
for(i=3;i<=c;i++)
{
n=a+b;
a=b;b=n;
}
printf("%d\n",n);
}
}
return 0;
}