#include <bits/stdc++.h> using namespace std; int n,i,j,dp[4][40000]; int main() { int n; cin>>n; for(int i = 1;i <= 3;i++){ dp[i][0] = 1;//初始化 //j从i开始循环,防止背包容量不够 for(int j = 1;j <= n;j++){ if(j < i){ dp[i][j] = dp[i - 1][j]; } else{ dp[i][j] = dp[i - 1][j] + dp[i][j - i]; } } } cout<<dp[3][n]; return 0; } /************************************************************** Problem: 1885 User: admin Language: C++ Result: Accepted Time:19 ms Memory:2700 kb ****************************************************************/