-
题目6:变态跳台阶
-
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:8
解决:7
-
题目描述:
-
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
-
输入:
-
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=50)。
-
输出:
-
对应每个测试案例,
输出该青蛙跳上一个n级的台阶总共有多少种跳法。
-
样例输入:
-
6
-
样例输出:
-
32
-
解题:和跳台阶一样,到第n级台阶,可以从第 1级,第2级,......第n-2级,第n-1级直接跳到第n级,也可以从第0级直接跳到第n级。所以
f[n] = f[1] + f[2] + ...... f[n-2] + f[n-1] + 1
#include <iostream>
using namespace std;
int main()
{
long long f[51]={0,1,2},n = 3,sum = 3;
for(int i = 3;i <= 50 ;i++)
{
f[i] = sum + 1;
sum += f[i];
}
while(cin >> n)
{
cout << f[n] << endl;
}
return 0;
}