//一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
//
// 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
//
// 示例 1:
//
// 输入:n = 2
//输出:2
//
//
// 示例 2:
//
// 输入:n = 7
//输出:21
//
//
// 示例 3:
//
// 输入:n = 0
//输出:1
//
// 提示:
//
//
// 0 <= n <= 100
//
//
// 注意:本题与主站 70 题相同:https://leetcode-cn.com/problems/climbing-stairs/
//
//
// Related Topics 递归
// 👍 119 👎 0
/*
* 剑指 Offer 10- II 青蛙跳台阶问题
* 2021-02-18 11:30:15
* @author oxygenbytes
*/
#include "leetcode.h"
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public:
int mod = 1e9 + 7;
int numWays(int n) {
if(n == 0) return 1;
if(n == 1) return 1;
if(n == 2) return 2;
int a = 1, b = 2;
int temp;
for(int i = 3;i <= n;i++){
temp = b % mod ;
b = (a + b) % mod;
a = temp;
}
return b;
}
};
//leetcode submit region end(Prohibit modification and deletion)