Online Judge【NYOJ】[1121]Triangular Sums问题描述 问题分析有大量的重复计算所以感觉还是打表好一些 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include<stdio.h> int main() { int T,kase=0; scanf("%d",&T); int a[320]= {0,3}; int b[320]= {0,3}; for(int i=2; i<320; i++) { a[i]=i*(a[i-1]/(i-1)+i+1); } for(int i=2; i<320; i++) { b[i]=b[i-1]+a[i]; } while(T--) { int n; scanf("%d",&n); printf("%d %d %d\n",++kase,n,b[n]); } return 0; }标程只用了一个表应该是找规律时直接从结果下手的 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include<iostream> using namespace std; const int M=310; int W[M]; int main() { for(int i=1; i!=M; i++) W[i]=W[i-1]+i*(i+1)*(i+2)/2; int m,n; cin>>n; for(int i=1; i<=n; i++) { cin>>m; cout<<i<<" "<<m<<" "<<W[m]<<endl; } }题目记录:Triangular Sums