我正在为欧拉项目进行数学挑战,并且在运行程序时遇到了一个奇怪的问题。结果应该是所有奇数之和,最高为10,000,000,但是我得到一个负数,我在做什么错?

package program;

import java.util.*;

public class MainClass {

/**
 * @param args
 */
public static void main(String[] args) {

    int total = 0;

    for (int counter = 1; counter < 10000000; counter++) {
        if (!((counter % 2) == 0)) {
            total+=counter;
        }

    }
    System.out.println(total);

}

}

最佳答案

使用long而不是int。由于整数溢出,您得到一个负数。

关于java - Java-添加所有奇数奇怪的行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10057628/

10-14 11:10