小明剛剛看完電影《第39級臺階》,離開電影院的時候,他數了數禮堂前的臺階數,恰好是39級!
站在臺階前,他突然又想着一個問題:
如果我每一步只能邁上1個或2個臺階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級臺階,有多少種不同的上法呢?
請你利用計算機的優勢,幫助小明尋找答案。
代碼
#include<iostream>
using namespace std;
int sum;
void dfs(int n,int k)
{
if(n>39)
return ;
if(n==39&&k%2==0)
{
sum++;
return ;
}
dfs(n+1,k+1);
dfs(n+2,k+1);
}
int main()
{
sum=0;
dfs(0,0);
printf("%d\n",sum);
return 0;
}
/*析:
遞歸,dfs深搜
*/