Java 计算 1 到 1,000,000 的和

如果让你计算 1 到 100 万的和是多少,你应该会这样写:

    @Test
    public void testSum() {
        int sum = 0;
        for (int i = 1; i <= 1000000; i++) {
            sum = sum + i;
        }
        logger.debug("SUM - {}", sum);
    }

程序不长,但是你如果进行计算的话,你得到的结果很有可能是这样的:

00:38:51.312 [main] DEBUG com.ossez.codebank.algorithm.tests.BlankTest - SUM - 1784293664

是不是发现上面的结果不对?

这是因为在 int 已经溢出了。

在 Java 中,int 只能存储 2147483647 这么多的数字,如果你在上面的代码中使用 int 那么肯定会溢出的。

所以你需要使用 long 来进行计算。


上面的运算结果才是你要的结果。