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個台階,走法為...