藍橋杯 第39級台階

2021-08-15 14:45:24 字數 982 閱讀 7375

題目描述:

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

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

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

39級台階,

1. 每步1或

2階2. 必須是偶數步

求上台階的方案數。

------------------

沒有偶數限制:

f(n) = f(n-1) + f(n-2)  

--------------------

經典的間接遞迴的例子:

f(n)  必須偶數步

g(n)  必須奇數步

f(n) = g(n-1) + g(n-2)

g(n) = f(n-1) + f(n-2)

出口:f(n)  n==0: 1   n==1: 0  n==2: 1

g(n)  n==0: 0   n==1: 1  n==2: 1

#include int g(int n);

int f(int n)

int g(int n)

int main()

在網上看到的一種比較簡潔易懂的寫法。當走完樓梯的時候如果步數為偶數則算一次。

要說明stair可能出現小於0的情況,當最後只剩了乙個台階,但是小明想要跨兩步的時候,這樣是不可能的,也就是說他只能跨一步,兩步是不可能出現的,因此也不可能是符合條件的走法。

#include int cnt;

void fx(int stair,int step)//stair表示剩餘樓梯數,step表示z走的步數

fx(stair-1,step+1);

fx(stair-2,step+1);

}int main()

藍橋杯 第39級台階

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

藍橋杯 第39級台階

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

第39級台階 藍橋杯

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