java - 整数结果与计算不同

标签 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);
    }
}

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

可能出了什么问题?

最佳答案

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

关于java - 整数结果与计算不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34434152/

相关文章:

math - 常规-是否可以根据现有平均值并为所得平均值指定新参数来计算平均值?

java - 求和求1000下5的最大倍数

java - java中使用zxing扫描二维条码

regex - 从postgresql中的字符串转换方程

c - 如何使C找到所有不同的符号(+,-,*,/)组合以获得一定的输出

c++ - 在函数中使用方程式的麻烦

java - ANT-从多个包加载多个Java文件

java - 自动将构造的每个 Class 对象添加到 ArrayList 中

java - 插入新文档时,Cosmos Db 触发器未运行

java - 在客户端-服务器模型中使用 Hibernate