我需要程式找到素數并將它們放入陣列中并回傳它們。我只想System.out在 Main 類中使用。我應該在我的代碼中添加什么?謝謝。
這是我在第一堂課中找出哪些數是素數的第一個方法:
private boolean isPrime(int n) {
for (int i = 2; i < n; i ) {
if (n % i == 0)
return false;
}
return true;
}
這是我需要幫助的另一種方法:
public int[] test(int a, int b) {
//what do I write here
for (int i = a; i <= b; i ) {
if (isPrime(i)) {
//what do I write here, I only want to use syso in the other
//class(Main).
}
}
return ?;
}
這是我的主要課程:
public static void main(String... args) {
Prime p = new Prime();
System.out.println(p.test(10, 30));
}
uj5u.com熱心網友回復:
將數字放入串列并將其轉換為 int 陣列:
public int[] test(int a, int b) {
List<Integer> result = new ArrayList<>();
//what do I write here
for (int i = a; i <= b; i ) {
if (isPrime(i))
result.add(i);
//what do I write here, I only want to use syso in the other
//class(Main).
}
return result.stream()
.mapToInt(Integer::intValue)
.toArray();
}
uj5u.com熱心網友回復:
public class Prime {
public static void main(String... args) throws IOException {
System.out.println(Arrays.toString(getPrimesWithin(10, 30)));
}
public static int[] getPrimesWithin(int lo, int hi) {
return IntStream.rangeClosed(lo, hi)
.filter(Prime::isPrime)
.toArray();
}
private static boolean isPrime(int val) {
if (val < 2)
return false;
for (int i = 2, sqrt = (int)Math.sqrt(val); i <= sqrt; i )
if (val % i == 0)
return false;
return true;
}
}
uj5u.com熱心網友回復:
您的test()方法是回傳型別int[]但您不知道您將獲得多少質數作為回應。基本上你不知道陣列的大小,所以不要使用陣列,而是使用java.util包中的ArrayList 。創建一個List物件并在其中添加所有素數并回傳。然后在方法中,在任何變數中收集您對方法的回應,然后對其進行迭代以列印結果。main()test()
下面是執行此操作的代碼 -
測驗()方法:
public List<Integer> test(int a, int b) {
List<Integer> primeNumbersList = new ArrayList<Integer>();
for (int i = a; i <= b; i ) {
if (isPrime(i)){
primeNumbersList.add(i);
}
}
return ?;
}
main() 方法:
public class Main {
public static void main(String[] args) {
Prime p = new Prime();
List<Integer> primeNumbers = p.test(10,30);
foreach(int num : primeNumbers){
System.out.println(num);
}
}
}
uj5u.com熱心網友回復:
這會將test方法回傳型別更改為 ArrayList,但如果可以接受,則可以這樣做:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
Prime p = new Prime();
System.out.println(p.test(10, 30).toString());
}
}
class Prime {
public ArrayList<Integer> test(int a, int b) {
ArrayList<Integer> primeNumbers = new ArrayList<Integer>();
for (int i = a; i <= b; i ) {
if (isPrime(i)) {
primeNumbers.add(i);
}
}
return primeNumbers;
}
private boolean isPrime(int n) {
for (int i = 2; i < n; i ) {
if (n % i == 0)
return false;
}
return true;
}
}
uj5u.com熱心網友回復:
主要用于列印陣列:Arrays.toString(p.test(10, 30))
在測驗方法中將所有素數收集到陣列中并回傳該陣列
public int[] test(int a, int b) {
List<Integer> list = new ArrayList<>();
for (int i = a; i <= b; i ) {
if (isPrime(i))
list.add(i);
}
int c = 0;
int[] result = new int[list.size()];
for(int e : list) {
result[c ] = e;
}
return result;
}
public static void main(String[] args) {
Prime p = new Prime();
System.out.println(Arrays.toString(p.test(20, 100)));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/525733.html
標籤:爪哇数组
上一篇:使用VSCode和Firefox進行角度除錯->[HPM]嘗試將請求/api/auth/user/從localhost:4200代理到時發生錯誤
下一篇:我如何加入這些陣列是一個?
