#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
递归