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
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;
}
递推算法