SDUT 爬楼梯

Problem Description

小明是个非常无聊的人,他每天都会思考一些奇怪的问题,比如爬楼梯的时候,他就会想,如果每次可以上一级台阶或者两级台阶,那么上 n 级台阶一共有多少种方案?
Input

输入包含多组测试数据,对于每组测试数据:
输入只有一行为一个正整数 n(1 ≤ n ≤ 50)。
Output

对于每组测试数据,输出符合条件的方案数。
注意:64-bit 整型请使用 long long 来定义,并且使用 %lld 或 cin、cout 来输入输出,请不要使用 __int64 和 %I64d。
Example Input

2
4
Example Output

2
5
Hint

Author

代码

#include <stdio.h>
int main()
{
    int n,i;
    long long int f[51];
    f[1]=1;
    f[2]=2;
    while(~scanf("%d",&n))
    {
        if(n==1)
            printf("%lld\n",f[1]);
        else if(n==2)
                printf("%lld\n",f[2]);
        else
        {
        for(i=3;i<=n;i++)
        {
            f[i] = f[i-1]+f[i-2];
        }
        printf("%lld\n",f[n]);

        }
    }
    return 0;
}

递推算法

posted @ 2017-04-09 09:51  lushann  阅读(148)  评论(0编辑  收藏  举报
站长工具: