计算sum=1+2...+n,要求number和sum的类型都是int,且sum在32位以内~

计算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只是在表示方式上不同而已

你可能感兴趣的:(算法刷题,java,算法,数据结构)