Run ID:129062
提交时间:2025-08-21 16:48:31
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; int main(){ long long a[41] = {0, 1, 2, 4}; // 初始化前4项(索引0~3) int n; long long q = 0; cin >> n; // 限制n的范围,避免数组越界 if (n==0) { // 因为i+1最大为n+1 ≤40 → n≤39,留一点余量 cout<<0; return 0; } else{ // 从i=3开始递推(确保i-2≥1,避免访问a[-1]) for (int i = 4; i <=n; i++) { a[i] = a[i-3] + a[i-1] + a[i-2]; // 递推公式:当前项=前三项之和 } cout << a[n]; } return 0; }