爬樓梯問題

2021-06-29 01:49:55 字數 704 閱讀 3989

ok,前段時間在一篇blog上看到乙個關於樓梯的面試題,大概內容如下:

現有乙個人,規定他上樓梯時只能一步走乙個台階或者兩個台階。要求:給定任意樓梯的階數,求共有多少種方法爬完樓梯。

如果有經驗可以看出,這是一道遞迴的題目。不過這個遞迴 程式怎麼寫呢?我的思路是可以這樣想,不管他前面 怎麼爬,最後總是要從n-2階或者n-1階 上來。當從n-2階上來時,就有兩種方法:1 1和 2(即一次一步和一次兩步),當從n-1階上來時就只有一種方式了。到這裡**應該不難了。我的實現如下:

#include void pa_lou_ti(unsigned int n,unsigned int *p)

pa_lou_ti(n-1,p);

pa_lou_ti(n-2,p);

}int main(void)

現在檢測一下**是否正確:輸入5執行結果如下:

那實際上呢,對於5,我們可以列舉一下:

1  1  1  1  1

1 1 1 2

1 2 1 1

1 1 2 1

1 1 1 2

2 2 1

2 2 1

2 1 2

窮舉也是8種。

so success!

爬樓梯問題

爬樓梯問題,每次可以走1步或者2步,爬上n層樓梯的總方法,這題就是乙個變相的fibonacci問題。當n 1時,有1種方法,即直接走1步 當n 2時,有2方法 連續走2步,或直接走兩步 對於n,設f n 為總方法,則 f n f n 1 f n 2 ps f n 1 即第一次走一步的走法,f n 2...

爬樓梯問題

蒜頭君自從春節回來以後,體重就像加了特技一樣duang duang 地暴增起來。於是小蒜頭打算每天爬樓梯來燃燒體內的脂肪 咦?蒜怎麼會有脂肪 蒜頭在爬樓梯的時候腦洞大開,因為蒜頭腿短,爬樓梯的時候一次只能邁1級或2級台階,它就想到了,假如一共有n級台階的話,它一共有多少種方法能夠爬到樓梯頂部呢?聰明...

爬樓梯問題

有乙個若干階樓梯台階,每次爬只能爬1階或者2階,問有多少種爬法?首先分析一下簡單情況,每種樓梯對應的爬樓種類 假設n階樓梯的爬法為f n 那麼f n f n 1 f n 2 於是我們可以推理得出乙個公式,如下 最後用 實現一下,現在估計大家都會寫了,就不贅述了,如下。public intclimbs...