其实就和斐波那契数列是一样的,递推公式是:dp[i] = dp[i - 1] + dp[i - 2],用迭代去写的话只需要新建两个变量分别存储一下 dp[i - 1] 和 dp[i - 2] 就好了
#include<iostream> using namespace std; int main(){ int N; while(cin >> N){ if(N == 1) cout << 1 << endl; else if(N == 2) cout << 2 << endl; else { // num1 和 num2 分别代表 dp[i-1] 和 dp[i-2] int num1 = 1, num2 = 2; for(int i = 3; i <= N; i ++){ int temp = num2; num2 += num1; num1 = temp; } cout << num2 << endl; } } return 0; }