【发布时间】:2017-10-10 15:22:05
【问题描述】:
我应该计算数组中素数的根和平方。
结果都应该存储在两个新数组中。我的解决方案是:
import java.util.Arrays;
import java.lang.Math;
public class Array1 {
public static void main(String[] args) {
double[] primeNumbers = {3, 5, 7, 11, 13, 17};
for (int i = 0; i < primeNumbers.length-1; i++) {
double[] root = new double[primeNumbers.length-1];
root[i] = Math.sqrt(primeNumbers[i]);
if ( i == primeNumbers.length-2 ) {
System.out.println( Arrays.toString( root ));
}
}
for (int i = 0; i < primeNumbers.length-1; i++) {
double[] square = new double[primeNumbers.length-1];
square[i] = primeNumbers[i] * primeNumbers[i];
if ( i == primeNumbers.length-2 ) {
System.out.println( Arrays.toString( square ));
}
}
}
}
不幸的是,我的解决方案的结果是:
[0.0, 0.0, 0.0, 0.0, 3.605551275463989]
[0.0, 0.0, 0.0, 0.0, 169.0]
请帮帮我。
【问题讨论】:
-
在询问与代码相关的问题时,您应该在问题中添加一个标签,表明代码使用的是哪种编程语言。
-
double[] root = new double[primeNumbers.length-1];在每次迭代时创建一个新数组。也许那是你的问题。请接tour,通过help center,阅读How to Ask,尝试学习如何使用调试器 -
您需要将平方和根存储在数组中,还是直接打印出来?另外,为什么只打印 i==primeNumbers.length-2?
标签: java arrays for-loop primes