题目描述

Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。 但年幼的他一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法。

输入

输入包括多组数据。 每组数据包括一行:N(1≤N≤40)。 输入以0结束

输出

对应每个输入包括一个输出。 为redraiment到达第n阶不同走法的数量。

样例输入

1
3
0

样例输出

1
3

代码

#include <stdio.h>
int main()
{
    int a[41];
    int i,n;
    a[1]=1;a[2]=2;
    for (i=3;i<=40;i++)
    {
        a[i]=a[i-2]+a[i-1];
    }
    while(scanf("%d",&n),n!=0)
        printf("%ld\n",a[n]);
    return 0;
}

总结

此题为典型的斐波那契数列问题,解法有很多。

版权声明: 本博客所有文章除特别声明外,均采用署名-非商业性使用-相同方式共享 4.0 国际CC BY-NC-SA 4.0 )许可协议。转载请注明出处!
最后修改:2019 年 10 月 29 日 02 : 23 PM
如果觉得我的文章对你有用,请随意赞赏