1. 程式人生 > 其它 >劍指offer10—青蛙跳臺階

劍指offer10—青蛙跳臺階

技術標籤:c++

題目描述:一隻青蛙一次可以跳上1級臺階,也可以跳上2級臺階。求該青蛙跳上一個 n 級的臺階總共有多少種跳法。

答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。

示例 1:

輸入:n = 2
輸出:2
示例 2:

輸入:n = 7
輸出:21
示例 3:

輸入:n = 0
輸出:1
提示:

0 <= n <= 100
解題思路
你寫出來幾級臺階並且列出對應的跳法數量之後:

在這裡插入圖片描述
你就會發現這就是簡單的一個斐波那契數列,所以就直接看程式碼:

class Solution {
public:
    int numWays(int n) {
        if
(n==0||n==1) return 1;//你可以再加一句如果他<0返回-1使之更嚴密,當然也可以不加 int a=1,b=1,sum=0; for(int i=2;i<=n;++i) { sum=(a+b)%1000000007;//這塊取模是題目要求,至於具體為什麼得去百度我就不在這贅述了 a=b; b=sum; } return sum; } };

就這麼簡單,隨後我再發一道“變態跳臺階”,大家可以跟我一起看看都多“變態”