【发布时间】:2020-08-03 11:59:36
【问题描述】:
我一直在使用递归函数,并在网上搜索了一些问题,以了解更多关于它们如何工作的信息。 我遇到了一个叫做楼梯的问题,这是为它设计的代码-
#include<bits/stdc++.h>
using namespace std;
int staircase(int n){
if(n<0){ //Base Case 1
return 0;
}
if(n==0){ //Base Case 2
return 1;
}
int count = 0;
count += staircase(n-1); //Stepping 1 step
count += staircase(n-2); //Stepping 2 step
count += staircase(n-3); //Stepping 3 step
return count;
}
int main(){
int n;
cout<<"Enter number of stairs\n";
cin>>n;
cout<<"No of ways to climb stairs are ";
cout<<staircase(n)<<endl;
return 0;
}
如果有人能帮助我从“int count”理解楼梯函数{我已经理解基本案例},那将非常有帮助!
【问题讨论】:
-
不清楚。你的问题是什么?
-
n在你传入时变得越来越小(由于 n-1、n-2 和 n-3),最终达到n == 1或n < 0的基本情况.这将结束递归并总结所有返回调用堆栈的数字。