恩。。。这题感觉挺经典的。。。开始wa了一次。。后来一看discuss,才知道原来i的三次方会溢出。然后改对了,代码如下:
#include"stdio.h" __int64 a[100005],i; int main( ) { int n; for(i=1;i<=100000;i++) { if(i%3==0) a[i]=a[i-1]+i*i*i; else a[i]=a[i-1]+i; } while(scanf("%d",&n)&&n>=0) { printf("%I64d\n",a[n]); } return 0; }