第三十九級臺階
阿新 • • 發佈:2019-02-17
題目描述:
第39級臺階
小明剛剛看完電影《第39級臺階》,離開電影院的時候,他數了數禮堂前的臺階數,恰好是39級!站在臺階前,他突然又想著一個問題:
如果我每一步只能邁上1個或2個臺階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級臺階,有多少種不同的上法呢?
請你利用計算機的優勢,幫助小明尋找答案。
思考:
1.以“第幾級臺階”來作為向下遞迴的層次;
2.每一級臺階都有 走一步 和 走兩步 兩種情況;
3.每次遞歸回來,都要對總的步數和所在的臺階進行處理;
程式碼:
速度有點慢~~~
#include<stdio.h> int total = 0, num = 0; //total 總共走的臺階數/步數, num 代表有多少種走法; int n = 39; void steps(int cur); //cur是第幾級臺階; int main(void) { int cur = 0; steps(cur); printf("num = %d\n", num); return 0; } void steps(int cur) { if(total % 2 == 0 && cur == n) { num++; } if(cur > n)// return ; cur = cur + 1; //走一步; total++; steps(cur); total--; cur--; cur = cur + 2; //走兩步; total++; steps(cur); total--; cur = cur - 2; }