共有n級臺階,一次可以上至少1級但不超過m級臺階
#include <iostream> #include<cmath> using namespace std; int F[510000] = { 1,1,2 }; int fun(int n, int m) { for (int i = 3; i <= m; i++) { F[i] = 1 << (i - 1); } for (int i = 3; i <= n; i++) { if (i <= m) { continue; } F[i] = 2 * F[i - 1] - F[i - m - 1]; } return F[n]%10007; } int main() { int n,m; cin >> n>>m; if (m == 1) cout<<1%10007; else cout << fun(n, m); return 0; }
注:商湯筆試題,只能通過50%。
參考:
https://88250.b3log.org/steps-problem.html
相關推薦
共有n級臺階,一次可以上至少1級但不超過m級臺階
#include <iostream> #include<cmath> using namespace std; int F[510000] = { 1,1,2 }; int fun(int n, int m) { for (int i = 3
【Python】Python實現N級臺階,一次可以走1步,2步,3步,一共多少種上樓梯方法
去面試的時候,筆試題有一個二選一,有一個是這個問題,當時選的另一個,現在實現下這個臺階問題。 如果只有一級臺階,那麼方法只有1種,如果是有二級臺階,那麼方法2種,如果三屆臺階,那麼實現方法有4種。 如果臺階數再增加,大於三屆臺階以後,可以認為是隻有一二三級臺階的一個重複實現,可以使用遞迴的方
N個臺階,一次可以走一步或者兩步,求走這n個臺階有多少種方法(遞迴和非遞迴實現)
1、遞迴實現 <pre name="code" class="cpp">///遞迴方法 int Fibonacci(unsigned int N) { if(N<=2)
一個臺階總共有n級,如果一次可以跳1級,也可以跳2級。 求總共有多少總跳法,並分析演算法的時間複雜度。
一個臺階總共有n級,如果一次可以跳1級,也可以跳2級。 求總共有多少總跳法,並分析演算法的時間複雜度。 設:總共有F(n)種跳法 那麼, F(1) = 1; F(2)= 2; F(
一隻青蛙一次可以跳1級臺階,也可以跳兩級,跳上一個n級臺階有多少種方法?
如果0級臺階,則是0種方法;一級臺階則是一種方法;兩級臺階則是兩種方法;當n >2 時,第一次跳的時候有兩種不同的方式:一是跳一級,此時跳法數目等於後面剩下的n-1級臺階的跳法數目,f(n-1);另外一種是第一次跳兩級,此時跳法數目為後面剩下的n-2級臺階的跳法數目,即
一個臺階總共有n 級,如果一次可以跳1 級,也可以跳2 級,求總共有多少總跳法,並分析演算法的時間複雜度。
這是華哥那天問我的,當時不想動腦。回來後,網上看了一下,原理很簡單,用到了遞迴。但我遞迴很菜。。。 他的思路是: 我們把n 級臺階時的跳法看成是n 的函式,記為f(n)。當n>2 時,第一次跳的時候就有兩種不同的選擇:一是第一次只跳1 級,此時跳法數目等於後面剩下的n
一個臺階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有 多少總跳法。
/* [email protected] 轉載請註明出處 題目:一個臺階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有 多少總跳法。 分析: 這道題最近經常出現,包括MicroStrategy等比較重視演算法的公司都曾 先後選用過個這道題作為面試題或者筆試
遞迴求解走臺階問題,一次可以走一步、兩步、三步、...、n步(經典面試題——增強版走臺階)
1、問題描述 現在有一個臺階,一共有n階,你一次性可以走1步、2步、3步、......、n步。問:一共有多少種走法。 2、求解思路 第一步走1階:那麼這種情況下的走法數量和剩下n-1階的走法數量有關;
10個臺階,每次只能上1個或者2個,一共有多少種走法
思路來得太慢,好想拿小錘錘捶自己喲~~~ 第一種,遞迴思路。 如果你上10個臺階,可以分解成下面兩種情況: ● 上9個臺階,最後上1個臺階。假設這種情況下,上前面9個臺階的方法數為m。 ● 上8個臺
n個硬幣反面朝上,拋m次,一次可以拋k枚硬幣,正面朝上得概率
題意n個硬幣反面朝上,拋m次,一次可以拋k枚硬幣,問在最優得情況下正面朝上得概率 最優的情況 每次選的k枚硬幣儘量都選反面朝上的 dp[i][j]表示 第i次拋硬幣中j個正面朝上的概率,對於拋k枚硬幣,c
梯有N階,上樓可以一步上一階,也可以一次上二階(Java實現)
走樓梯問題 組合數學和動態規劃演算法 本文嘗試對“走樓梯”問題做一個較為系統的解釋。 程式碼可以自己複製出去,除錯執行和理解! 例3:一共有10級,每次可走一步也可以走兩步.必須要8步走完10級樓梯. 問:一共有多少種走法? 分析
無限極結構循環,不適用任何數組函數,一次循環,並根據給出的root 快速篩選
PHP 無限極分類 一次循環 不使用任何函數 <?php$nodesArrays = [[‘id‘ => 1, ‘pid‘ => 0, ‘name‘ => ‘a‘],[‘id‘ => 2, ‘pid‘ => 0, ‘name‘ => ‘b‘],[‘id
當python,單例模式,多例模式,一次初始化遇到一起
end light 答案 註意 找到 一次 turn 相關 表示 1.在python中,單例模式是很容易實現的,隨便翻翻網上的相關教程,就能夠找到很多答案。 比如這樣: class hello(object): def __new__(cls, *args, *
不用每周等更新,一次訂閱看到爽,51CTO博客專欄更新完畢專欄合集
高級運維 com 容器雲 企業架構 公司 跟著 進行 高級工程師 狀態 51CTO博客訂閱專欄自上線以來就收到了廣大技術愛好者的支持,雖然以滿滿的幹貨俘獲了無數技術小哥哥的心,但是因為專欄內容每周更新一篇也讓無數技術小哥哥倍感煎熬。 BUT,現在已經有部分專欄內容已經更新完
十字叉病毒,殺不死的小強,一次雲服務器淪陷實錄
不讓 .sh 最後一行 nag 平時 再看 如果 cal 查看系統 一、現象 接到客戶的電話,說自己的雲服務器被提供商禁止訪問了,原因是監測到網絡流量暴滿,服務器不停的向外發包,在確認客戶沒有業務量突增的情況下,初步判斷可能服務器遭受了流量攻&擊(DDOS),不過按
萌生玩吧單機遊戲合集,持續更新,一鍵下載,一次購買,長期下載。
中文補丁 工作 大戰 1.7 軟件 塔防 bsp 補丁 勛章 持續更新,一鍵下載,一次購買,長期下載。 不忘初心方得始終,堅持做廣大網友心目中最好用的遊戲合集!良心賣家【沒有的遊戲免費幫找】下面是遊戲表群內還有2000G遊戲種子,並長期更新遊戲。帶圖十字好評後審核後進群價格
40天緊急備戰PMP,從成功報名到通過考試,一次PASS!!!
image mark 一段時間 多次 再次 推薦 process http 安排時間 總體來說,我是幸運的,40天的時間,從網上了解到51CTO學院開設此課程(因本人有10余年的工作經驗,相對還是比較容易理解),到成功報名,離考試時間也就40來天,功
備考乾貨 | 40天緊急備戰PMP,一次PASS的原因竟然是..
噠噠噠...... 經過辛苦的3個月備戰PMP考試,新一波優秀童鞋出爐啦!!! 下面是學長學姐辛苦寫下的備考祕訣哦~ 好好閱讀~讓我們走在前人的道路上,所向披靡~ 李濤 博文連結:http://blog.51cto.com/2107466/2298367 《40天緊急備戰PMP,從成功
C++ 二叉樹非遞迴遍歷(別貪心,一次迴圈訪問一個節點,前序遍歷2例外)
前序遍歷方法1: void preOrder1(BiNode * rootN) { if (rootN != nullptr) { stack<BiNode*> nodeSta; nodeSta.push(rootN); BiNode* curNode; wh
js實現快速排序,二分查詢 (詳解,一次學會)
js中幾大演算法,最近看到網上各路大神的解答,都蠻好的,自己也來玩一玩 一,快速排序 大致分三步: 在資料集之中,選擇一個元素作為"基準"(pivot)。 所有小於"基準"的元素,都移到"基準"的左邊;所有大於"基準"的元素,都移到"基準"的右邊。 對"基準"左邊和右邊的兩個子集,不斷重複