【题目】
小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,刚好是39级!c++
站在台阶前,他忽然又想着一个问题:spa
若是我每一步只能迈上1个或2个台阶。先迈左脚,而后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不一样的上法呢?code
请你利用计算机的优点,帮助小明寻找答案。blog
要求提交的是一个整数。
注意:不要提交解答过程,或其它的辅助说明文字。
递归
【思路】(答案51167078)
递归经典问题,出口处判断是否是偶数步。it
1 #include<bits/stdc++.h> 2 using namespace std; 3 int ans=0; 4 5 void f(int n,int step){ 6 if(n<0) return; 7 if(n==0&&step%2==0) { 8 ans++; return;//要return 9 } 10 f(n-1,step+1); 11 f(n-2,step+1);//注意这里是+1 12 } 13 int main(){ 14 f(39,0); 15 cout<<ans; 16 }