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

浙公网安备 33010602011771号