1.题目
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
2.正确代码
#include<iostream>
using namespace std;
int main()
{
long long x[32];
int n,i;
while( cin >> n && n)
{
x[n]=1;
for(i=n-1;i>=1;i--)
x[i]=2*(x[i+1]+1);
cout << x[1] <<endl;
}
return 0;
}
3.题目解析
略
本文探讨了经典的爬楼梯问题,即如何计算出达到第n级台阶的不同方式的数量。通过使用动态规划的方法,提供了一个高效的解决方案,并附带了C++实现代码。
1657

被折叠的 条评论
为什么被折叠?



