如何比较给定的整数与可能的根

时间:2015-03-18 17:57:13

标签: java input integer

我无法以最佳方式命名这个问题......我的目标是编写一个从用户那里获取integer n的程序。然后与两个整数a和b的三次幂进行比较。 如果^ 3 + b ^ 3小于或等于给定输入,我想打印出每个可能的计算给用户。

我的代码如下:

        System.out.println("Hi. Please insert an integer: ");
        Scanner input = new Scanner(System.in);

        int n = input.nextInt();
        double root = Math.cbrt(n);
        int rootInt = (int) root;

        for (int i = 0; i < rootInt; i++){ 
            for (int j = 0; j < rootInt; j++){

                if ((Math.pow(i, 3)) + (Math.pow(j, 3)) <= n){

                    double t = (Math.pow(i, 3) + (Math.pow(j, 3)));
                    int totalInt = (int) t;

                    System.out.println(i + "^3" + " + " + j + "^3" + " = " + totalInt );

                } else {

                }
                j++;
            }
            i++;
        }

当我运行此命令并输入30时,它会打印

0^3 + 0^3 = 0
0^3 + 2^3 = 8
2^3 + 0^3 = 8
2^3 + 2^3 = 16

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您增加ji两次。这就是为什么您只测试ij的偶数值的原因。

如果您想更正代码,请从结尾删除i++, j++,并仅使用2 for中的增量。