hdu acm 2132 水题也要注意细节

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2132

题目大意:

如果能被3整除,那么sum(i)=sum(i-1)+i*i*i;

否则sum(i)=sum(i-1)+i;

题目意思一目了然,可是由于自己没有仔细去看题目,输入的数据n<=100000,说明用int或long是不行的,在C语言中可以用—__int64位来处理这样的问题。

View Code
 1 #include<stdio.h>
 2 __int64 sum[100005],i;
 3 int main()
 4 {
 5     int n;
 6     for(i=1;i<=100000;i++)
 7     {
 8         if(i%3==0)
 9             sum[i]=sum[i-1]+i*i*i;
10         else
11             sum[i]=sum[i-1]+i;
12     }
13     while(scanf("%d",&n) && n>=0)
14     {
15         printf("%I64d\n",sum[n]);
16     }
17     return 0;
18 }

在此,特意提醒刚入门的ACMer们,一定要注意数据的范围!!!                                                        

2012-07-17

posted on 2012-07-17 21:18  l流沙  阅读(114)  评论(0)    收藏  举报

导航