剣指Offer 10-II.カエルの階段跳び問題
剣指Offer 10-II.カエルの階段跳び問題
テーマの説明:
一匹のカエルは一回に1段の階段を上ったり、2段の階段を登ったりします.この蛙が1つのn段の階段に上がることを求めて、全部で何種類の踊り方がありますか?
答えは金型1 e 9+7(100000万07)を取ります.初期結果を計算すると、100000万08となります.1を返してください.
ソース:スナップリンク:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof 著作権はネットの所有権を受領する.商業転載は公式の授権に連絡してください.商業転載ではないので、出典を明記してください.
例:
入力:n=2出力:2
入力:n=7出力:21
入力:n=0出力:1
考え方:
フィボナッチの数列:1つの階段を踊るには一つの方法があります.2つの階段を踊るには二つの方法があります.3つの階段を踊るには一つの階段と2つの階段を飛ぶ方法の合計があります.
コード:
テーマの説明:
一匹のカエルは一回に1段の階段を上ったり、2段の階段を登ったりします.この蛙が1つのn段の階段に上がることを求めて、全部で何種類の踊り方がありますか?
答えは金型1 e 9+7(100000万07)を取ります.初期結果を計算すると、100000万08となります.1を返してください.
ソース:スナップリンク:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof 著作権はネットの所有権を受領する.商業転載は公式の授権に連絡してください.商業転載ではないので、出典を明記してください.
例:
入力:n=2出力:2
入力:n=7出力:21
入力:n=0出力:1
考え方:
フィボナッチの数列:1つの階段を踊るには一つの方法があります.2つの階段を踊るには二つの方法があります.3つの階段を踊るには一つの階段と2つの階段を飛ぶ方法の合計があります.
コード:
var numWays = function(n) {
if(n <= 1) return 1;
if(n == 2) return 2;
let n1 = 1;
let n2 = 2;
let sum = 0;
for(let i=3;i<=n;i++){
sum = (n1 + n2) % 1000000007;
n1 = n2;
n2 = sum
}
return sum;
};