题目描述:
算法思想:
初始条件:f[1]=1,f[2]=1(2=1+1),f[3]=2(3=1+1+1=3);
开始跳跃:当一步跳3步的爬法为f[i-3],当一步跳1步的爬法为f[i-1],所以第i级阶梯的爬法为f[i]=f[i-1]+f[i-3]
全部代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1e6;
int f[N],n;
int main(){
cin>>n;
// 初始化
f[1] = 1;f[2] = 1;f[3] = 2;
for(int i=4;i<=n;i++)
f[i] = f[i-1]+f[i-3];
cout<<f[n]<<endl;
return 0;
}