走楼梯升级版,你前面有n(n>=1)级阶梯,你一次可以走1级阶梯,也可以一次走2级阶梯,还可以1次走三级阶梯,请问n级阶梯的走法有多少种
此类题目和课本上鸡兔同笼类的略微不同
eg:3个楼梯如果先走1步再走两步和先走两步和再走一步是不一样的走法;运用递归简单且易懂。
#include<iostream>
using namespace std;
int func(int n)
{
if (n==1||n==2)
return n;
else if (n==3)
return 4;
else
return func(n-1)+func(n-2)+func(n-3);
}
int main()
{
int n;
cin>>n;
cout<<func(n);
}