我无法以最佳方式命名这个问题......我的目标是编写一个从用户那里获取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
我做错了什么?
答案 0 :(得分:2)
您增加j
和i
两次。这就是为什么您只测试i
,j
的偶数值的原因。
如果您想更正代码,请从结尾删除i++, j++
,并仅使用2 for
中的增量。