爬楼梯
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
小明是个非常无聊的人,他每天都会思考一些奇怪的问题,比如爬楼梯的时候,他就会想,如果每次可以上一级台阶或者两级台阶,那么上 n 级台阶一共有多少种方案?
Input
输入包含多组测试数据,对于每组测试数据:
输入只有一行为一个正整数 n(1 ≤ n ≤ 50)。
Output
对于每组测试数据,输出符合条件的方案数。
注意:64-bit 整型请使用 long long 来定义,并且使用 %lld 或 cin、cout 来输入输出,请不要使用 __int64 和 %I64d。
Sample Input
2
4
Sample Output
2
5
#include
#include
int main()
{
long long int a[51];
int n,i;
a[1]=1;
a[2]=2;
while(scanf("%d",&n)!=EOF)
{
for(i=3;i<=n;i++)
{
a[i]=a[i-1]+a[i-2];
}
printf("%lld\n",a[n]);
}
return 0;
}
分析:可以在纸上构思一下一个台阶的时候什么情况,两个台阶的时候什么情况,三个。。。很容易得出递推公式。