每日程式設計 20170326

2022-08-16 18:06:24 字數 688 閱讀 8910

題目:有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或者二級,要走上m級,共有多少走法?注:規定從一級到一級有0種走法。

給定乙個正整數int n,請返回乙個數,代表上樓的方式數。保證n小於等於100。為了防止溢位,請返回結果mod 1000000007的值。

測試樣例:

3返回:2

解答:今天開始多訓練一些遞迴的程式設計題,感覺自己這方面差不少。

先從比較簡單的開始。

main函式只完成簡單的呼叫任務。

upstairs函式邏輯如下:

先判斷遞迴是不是結束,如果n減到了1,或者2,遞迴結束。

0的情況下,不剩任何走法,直接返回答案。

1的情況下,只有走1步這個走法,所以答案+1.

2的情況下,有1+1,2兩種走法,所以答案+2.

接下來是遞迴呼叫,將n每次減1或者2,然後呼叫本身。

最後是返回,如果每次減1或者2都操作完,不進行減3操作(因為沒有這個走法),直接返回當前得到的答案。

1 #include 2

3using

namespace

std;45

int upstairs(int n, int

ans)

13return

ans;14}

15int

main()

22 }

每日程式設計 (三十)

題目描述 給定 pushed 和 popped 兩個序列,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回 true 否則,返回 false 示例 1 輸入 pushed 1,2,3,4,5 popped 4,5,3,2,1 輸出 true 解釋 我們可以按以...

每日程式設計 31

題目描述 有n個房間,現在i號房間裡的人需要被重新分配,分配的規則是這樣的 先讓i號房間裡的人全都出來,接下來按照 i 1,i 2,i 3,的順序依此往這些房間裡放乙個人,n號房間的的下乙個房間是1號房間,直到所有的人都被重新分配。現在告訴你分配完後每個房間的人數以及最後乙個人被分配的房間號x,你需...

每日程式設計(36)

題目描述 矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 ...