藍橋杯 第39階台階

2021-07-13 06:19:22 字數 1032 閱讀 5139

小明剛剛看完電影《第39級台階》,離開電影院的時候,他數了數禮堂前的台階數,恰好是39級!

站在台階前,他突然又想著乙個問題:

如果我每一步只能邁上1個或2個台階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級台階,有多少種不同的上法呢?

請你利用計算機的優勢,幫助小明尋找答案。

思路1:遞迴求解

說一下我的思路:

b 用來表示左腳還是右腳:

b=0, 表示這一步要跨左腳 ,(也表示跨了奇數步) 

b=1,表示這一步要跨右腳,(也表示跨了偶數步)

當台階只剩下乙個時,這時 必須要跨右腳,才達到偶數步。

a 用來表示要跨的步數:

當a==2時,不管b==0還是1,都各有一種走法(這兩種跨法不同),自己思考是跨左腳還是跨右腳。

我就合成乙個了。

已知ans[1]=0,ans[2]=1,下面就可以遞迴求解了。

思路2:排列組合

答案:51167078

附上**:

[cpp]view plain

copy

#include

intfac(

inta, 

intb)  

if(a==2)  

return

1;  

return

(fac(a-1,!b)+fac(a-2,!b));  

}  int

main()    

方法二:

/*#includeint k=0;

int f(int x,int y)

int main()

*/

方法三:

[cpp]view plain

copy

#include 

intcombination(

intm,

intn)

//c(n,m)

intmain()  

第39階台階 藍橋杯

內容 2013年第四屆藍橋杯全國軟體大賽預賽第三題。該情景可簡化為39與0和1的關係問題,還有乙個限制條件,一共要走偶數步。這道題可以有兩種思路,遞迴與排列組合,都不長,重在思考過程。include int n 0 int fun int r,int s if r 0 s 2 0 for int i...

藍橋杯 第39階台階

見證自己的成長 小明剛剛看完電影 第39級台階 離開電影院的時候,他數了數禮堂前的台階數,恰好是39級 站在台階前,他突然又想著乙個問題 如果我每一步只能邁上1個或2個台階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級台階,有多少種不同的上法呢?請你利用計算機的...

第39階台階 藍橋杯

package algorithm 題意 第39階台階 藍橋杯 思路 遞迴思想 先左,最後右,一定為偶數步。2個變數 剩餘台階數 走的步數.第一步分2種情況 走1步,走2步 第一種 走一步,剩餘為38,走的步數1步 第二種 走2步,剩餘37,走的步數1 public class stepalgori...