【发布时间】:2019-03-27 21:21:14
【问题描述】:
我对 Java 比较陌生,我正在尝试找出一种方法来复制数组中的所有素数并将它们复制到另一个数组。
为此,我实现了一个单独的isPrime() 方法来检查元素是否是素数,以及另一个计算该数组countPrimes() 中素数数量的方法,这样我就可以确定新数组的大小。
这是我有点卡住的地方:
public static int[] primesIn(int[] arr) {
int primeHolder = countPrimes(arr);
int[] copyArr = new int[primeHolder];
for (int i = 0; i < arr.length; i++) {
if (isPrime(arr[i]) == true) {
copyArr[>Needs to start from 0<] = arr[i];
}
}
return copyArr;
}
int[] arrayMan = {3,5,10,15,13};
在copyArr 的位置应该是0,然后是+1 每次它找到一个素数。如果我给它i位置,如copyArr[i] = arr[i],然后说素数在位置5,它会尝试将素数保存到位置5copyArr,它不存在如果原始数组中只有三个素数,则copyArr 的长度只有三个。
有些东西告诉我一个不同的 for 循环,或者甚至可能是一个额外的循环会有所帮助,但我看不出我应该如何实现它。非常感谢您的帮助!
【问题讨论】: