第三十九級臺階(回溯)
阿新 • • 發佈:2019-02-20
題目標題: 第39級臺階
小明剛剛看完電影《第39級臺階》,離開電影院的時候,他數了數禮堂前的臺階數,恰好是39級!
站在臺階前,他突然又想著一個問題:
如果我每一步只能邁上1個或2個臺階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級臺階,有多少種不同的上法呢?
請你利用計算機的優勢,幫助小明尋找答案。
要求提交的是一個整數。
注意:不要提交解答過程,或其它的輔助說明文字。
有_______種不同的上法。(Ans:51167078)
用遞歸回溯不斷模擬1、2兩步上臺階的過程。
#include <bits/stdc++.h> int cnt=0; void dfs(int step,int taijie){ if(taijie>39) return; if(taijie==39){ if(step%2==0) cnt++; return; } dfs(step+1,taijie+1); dfs(step+1,taijie+2); return; } int main(void) { dfs(0,0); printf("%d",cnt); return 0; }