计算sum=1+2…+n。N是int型,32位,sum也是int,题目设定sum在32位以内。
import java.util.Scanner;
public class CaculactorSum {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int number=sc.nextInt();
adding(number);
}
public static int adding(int x) {
int sum = 0;
for (int i = 1; i <= x && (sum <= Integer.MAX_VALUE); i++) {
sum += i;
}
System.out.println(sum);
return sum;
}
}
输出:
20
210
除了上述我们使用Integer.MAX_VALUE的方法对sum进行限制之外,我们还可以使用sum & ~0x7FFFFFFF
作为限制条件
0x7FFFFFFF是一个16进制数表示的整数,转换成十进制是2147483647
。在计算机中,这个数是32位有符号整数的最大值,通常用来表示最大的正整数,与上述调用MAX_VALUE只是在表示方式上不同而已