2013年第四屆藍橋杯C/C++程序設計本科B組省賽 第39級臺階

小明剛剛看完電影《第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深搜
*/

發佈了36 篇原創文章 · 獲贊 1 · 訪問量 6572
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章