/*
问题:一个楼梯有35级,每次走1级或2级或3级,请问从底走到顶一共有多少种走法?
思想:到达最后一阶可以由最后一阶的前三阶走三步上去,或者由最后一阶的前两阶走两步上去,也可以由最后一阶走一步上去
第一阶有一种走法(一步)
第二阶有两种走法(连着走两个一步和直接一步走两个台阶)
第三种走法(由前两个台阶的走法再走一步和直接一步走三个台阶)
第i阶走法=第i-3阶的走法+第i-2阶的走法+第i-1阶的走法
*/
#include<iostream>
using namespace std;
int main(){
int f[36]={0};
f[0]=1;
f[1]=2;
f[2]=4;
for(int i=4;i<=35;i++){
f[i]=f[i-1]+f[i-2]+f[i-3];
}
cout<<f[35]<<endl;
return 0;
}
问题:一个楼梯有35级,每次走1级或2级或3级,请问从底走到顶一共有多少种走法?
思想:到达最后一阶可以由最后一阶的前三阶走三步上去,或者由最后一阶的前两阶走两步上去,也可以由最后一阶走一步上去
第一阶有一种走法(一步)
第二阶有两种走法(连着走两个一步和直接一步走两个台阶)
第三种走法(由前两个台阶的走法再走一步和直接一步走三个台阶)
第i阶走法=第i-3阶的走法+第i-2阶的走法+第i-1阶的走法
*/
#include<iostream>
using namespace std;
int main(){
int f[36]={0};
f[0]=1;
f[1]=2;
f[2]=4;
for(int i=4;i<=35;i++){
f[i]=f[i-1]+f[i-2]+f[i-3];
}
cout<<f[35]<<endl;
return 0;
}