花了3个多小时,这么简单地题目才AC,使用cin会超时,只能用scanf。始终想不通为什么内部循环得用__int64才能AC,用long long是WA,真郁闷,快被郁闷死了!贴上自己的代码:
1 #include<stdio.h>
2 #include<malloc.h>
3 #include<string.h>
4
5 int main()
6 {
7 __int64 n;
8 __int64 i;
9 __int64 *sum = (__int64 *)malloc(100005*sizeof(__int64));
10 memset(sum,0,sizeof(sum));
11 for(i = 1;i <= 100004;++i)
12 {
13 if(i%3 == 0) sum[i] = sum[i-1]+i*i*i;
14 else sum[i] = sum[i-1]+i;
15 }
16 while(scanf("%I64d",&n) != EOF && n >= 0)
17 {
18 printf("%I64d\n",sum[n]);
19 }
20
21 return 0;
22 }