整数结果与计算不同

时间:2015-12-23 10:58:57

标签: java equation

因此,如果找到了本文的链接:http://www.theguardian.com/science/alexs-adventures-in-numberland/2015/may/21/how-to-solve-the-maths-puzzle-for-vietnamese-eight-year-olds-that-stumped-parents-and-teachers

所以我决定使用java代码来解决它。

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Quiz {

    public static void main (String [] args){
        Double result = 0.0;
        boolean test = false;

        List<Integer> dataList = new ArrayList<Integer>();
        for (int i = 1; i < 10; i++) {
            dataList.add(i);
        }

        int[] num = new int[dataList.size()];

        while (test == false) {
            Collections.shuffle(dataList);
            for (int i = 0; i < dataList.size(); i++) {
                num[i] = dataList.get(i);
            }

            if ((num[0] + 13 * num[1] / num[2] + num[3] + 12 * num[4] - num[5] - 11 + num[6] * num[7] / num[8] - 10) == (3 + 13 * 2 / 1 + 5 + 12 * 4 - 7 - 11 + 9 * 8 / 6 - 10)){
                test = true;
            }
        }

        for (int i = 0; i < num.length; i++) {
            System.out.println(num[i]);
        }
        System.out.println(test);
    }
}

代码检查两个方程式并比较它们并给出我的真实,但是当我用计算器计算它们时,结果是不同的。

可能出现什么问题?

1 个答案:

答案 0 :(得分:3)

它是因为类型的结果取决于它的操作数类型。在您的情况下,因为所有操作数都是 int 类型,因此最终结果也将是 int