資料結構與演算法 12爬樓梯

2021-10-02 11:23:25 字數 868 閱讀 9158

description

爬樓梯的時候,設每次可以上一級台階或者兩級台階,計算上 n 級台階的方案數。

input

輸入包含多組測試資料,對於每組測試資料: 輸入只有一行為乙個正整數 n(1 ≤ n ≤ 50)。

output

對於每組測試資料,輸出符合條件的方案數。 注意:64-bit 整型請使用 long long 來定義,並且使用 %lld 或 cin、cout 來輸入輸出,請不要使用 __int64 和 %i64d。

sample input24

sample output25

參考程式

#include

#define len 50

intmain()

printf

("%lld\n"

,a[n]);

}return0;

}

分析

本題本質是斐波那契數列問題。思考過程:①如果只有一級台階:那麼只能跨一級,即僅1種方案;②如果有兩級台階:可以跨一級、再跨一級,或一次性跨兩級,所以共2種方案;③有n級台階:首先,可以先跨一級,後面n-1級利用之前計算的方案數得出;也可以先跨兩級,後面n-2級利用之前計算的方案數得出。根據分類加法原理,這兩種方法下的兩種方案數加總就是n級台階的方案總數。可見利用了遞迴思路。基於遞迴思路,給出基於遞迴的參考程式:

#include

long

long

outputstep

(int n)

else

if(n==2)

else

}int

main()

return0;

}

資料結構 11 爬樓梯

給定乙個非空且只包含非負數的整數陣列 nums,陣列的度的定義是指數組裡任一元素出現頻數的最大值。你的任務是找到與 nums 擁有相同大小的度的最短連續子陣列,返回其長度。示例 1 輸入 1,2,2,3,1 輸出 2 解釋 輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.連續子陣列裡面擁有相...

python爬樓梯演算法 爬樓梯(Python3)

假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...

爬樓梯演算法

有n階樓梯,有1,2,3 走m步走完樓梯,一共有多少種走法,並輸出所有的走法 設走n階台階的走法數為 f n 可以得到 f 1 1 f 2 2 f 3 4 對於n 3時,縮小問題規模 最後一步上乙個台階的話,之前上了n 1個台階,走法為f n 1 最後一步上兩個台階的話,之前上了n 2個台階,走法為...