#include <iostream> #include <vector> using namespace std; //dp[i-1]:第i个dp数组的值就是斐波那契数列第n个的值 台阶其实就是斐波那契数列 // 第一层 1 第二层 2 第三层由跳1阶和2阶组成 第四层:因为一次只能迈两阶,所以第四层是从第三层或者第二层迈上来 // 第四层有2+3种走法。 //递归公式:dp[i] = dp[i-2]+dp[i-1] //初始化: dp[0]=1,dp[1]=2 //遍历:从前向后 //验证:打印dp数组 int main() { int n; cin>>n; if(n==2) { cout<<2; return 0;//return 1;代表程序非正常结束 } if(n==1) { cout<<1; return 0; } vector<int> dp(n); dp[0]=1; dp[1]=2; for (int i =2; i<n; i++) { dp[i] = dp[i-2]+dp[i-1]; } printf("%d",dp[n-1]); return 0; } // 64 位输出请用 printf("%lld")