#P1433. [递归入门]第39级台阶

[递归入门]第39级台阶

Description

⼩明刚刚看完电影《第39级台阶》。离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然⼜想着⼀个问题: 如果我每⼀步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后⼀步是迈右脚,也就是说⼀共要⾛偶数步。那么,上完39级台阶,有多少种不同的上法呢? 请你利⽤计算机的优势,帮助⼩明寻找答案。

参考答案见提示。

Input Format

None

Output Format

上法总数

Hint

#include <iostream>
using namespace std;
int total=0;
//left是还剩的台阶数,step是⾛过的步数
void f(int left,int step){
    if(left<0 || (left == 0 && step % 2 == 1))
        return;
    if(left == 0 && step % 2 == 0){
        total++;
        return;
    }
    f(left-1,step+1);
    f(left-2,step+1);
    return;
}
int main(){
    f(39,0);
    cout << total << endl;
    return 0;
}

Source

递归