题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
输入
多组测试样例。每组测试样例包含一个整数n。(1<=n<=100)
输出
每组测试样例输出一行,表示青蛙跳上n级台阶的跳法数量.
所得到的结果模1000000007
样例输入
3 4
样例输出
3 5
算法描述
青蛙跳上n级台阶有两种方法。一种是从第n-1级台阶跳一级,另一种是从第n-2级台阶跳两级,因此青蛙跳上n级台阶的跳法数量等于青蛙跳上n-1级台阶的跳法数量加上跳上n-2级台阶的跳法数量.这类似于斐波那契数列,所以本题可采用斐波那契数列求解。
C++代码
#include <iostream>
using namespace std;
int main()
{
int n;
while (cin >> n)
{
long long int a, b, temp;
a = 1; b = 1;
while (--n)
{
temp = a;
a = b ;
b = (temp + a) % 1000000007;
}
cout << b%1000000007 << endl;
}
return 0;
}