題目:
小明剛剛看完電影《第39級台階》。離開電影院的時候,他數了數禮堂前的台階數,恰好是39級!
站在台階前,他突然又想著乙個問題:
如果我每一步只能邁上1個或2個台階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級台階,有多少種不同的上法呢?
請你利用計算機的優勢,幫助小明尋找答案。
思路1:
用dfs;遞迴深度為左右腳的總次數,步數可為1 or 2,遞迴出口為邁出的總台階數等於39,判斷條件是 左右腳的總步數為偶數。
思路2:
用兩個函式互相呼叫;左腳每次邁出的步數為乙個函式,右腳每次邁出的步數為乙個函式,遞迴出口為邁出的總台階數等於39,判斷條件在邁完右腳後判斷總台階數等於39。
答案:51167078
思路1 code:
#include
using namespace std;
int cnt;
void dfs(int
sum,int num)
if(sum == 39 && num % 2 != 0) return ;
if(sum > 39) return ;
dfs(sum + 1, num + 1);
dfs(sum + 2, num + 1);
}int main()
思路2 code
#include
using namespace std;
int cnt = 0;
void left(int
sum);
void right(int
sum);
void left(int
sum)
if(sum > 39) return ;
right(sum + 1);
right(sum + 2);
return ;
}void right(int
sum)
int main()
藍橋杯 39級台階
小明剛剛看完電影 第39級台階 離開電影院的時候,他數了數禮堂前的台階數,恰好是39級。站在台階前,他突然又想著乙個問題 如果我每一步只能邁上1個或2個台階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級台階,有多少種不同的上法呢?請你利用計算機的優勢,幫助小明尋...
藍橋杯 第39級台階
小明剛剛看完電影 第39級台階 離開電影院的時候,他數了數禮堂前的台階數,恰好是39級 站在台階前,他突然又想著乙個問題 如果我每一步只能邁上1個或2個台階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級台階,有多少種不同的上法呢?請你利用計算機的優勢,幫助小明尋...
藍橋杯 第39級台階
小明剛剛看完電影 第39級台階 離開電影院的時候,他數了數禮堂前的台階數,恰好是39級 站在台階前,他突然又想著乙個問題 如果我每一步只能邁上1個或2個台階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級台階,有多少種不同的上法呢?請你利用計算機的優勢,幫助小明尋...