hdu 1001 java

这题卡的点是结果满足,但中间过程溢出的陷阱。。。

1+2+。。n累加的话不会溢出,但是如果用n*(n+1)/2的话中间过程n*(n+1)可能已经超出int的范围了。。。。哎,看了半天,翻了原来的c代码才看出来。。。。这种很多。。有的难题解出来了,却因为这个小小的陷阱,失去了。。。好可惜啊。。。一定要记住。。。

import java.util.Scanner;public class Main 
{public static void main(String args[]){Scanner cin=new Scanner(System.in);while(cin.hasNextInt()){ long s=cin.nextInt();/*int sn=0;for(int i=1;i<=s;i++){sn+=i;}   //这种也对。。    */long sn=s*(s+1)/2;/*System.out.printf("%d%n%n",(s*(s+1))/2);	//错误。溢出。。。。。  */ System.out.printf("%d%n%n",sn);}}}



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部