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

  • Post author:
  • Post category:其他



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



版权声明:本文为m0_64365419原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。