gpt4 book ai didi

java - 扫描仪不工作 - Prime Sieve。代码完成

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:38 27 4
gpt4 key购买 nike

我正在研究 PrimeSieve 的数组列表实现,我已经编写了所有代码,但它似乎无法运行,所以我不确定是因为循环不好还是因为我设置了错误的扫描器​​。

这是代码。

import java.util.Scanner;
import java.util.ArrayList;


public class PrimeSieve {

public static void main(String[] args)
{
int inputNum;
Scanner SL = new Scanner(System.in);
System.out.print("Pick a number to count up from:");
inputNum = SL.nextInt();
ArrayList<Boolean> BL = findPrime(inputNum);
System.out.println("The prime numbers found:");
for(int i = 0; i < inputNum; i++)
{
if(BL.get(i) == true)
{
System.out.println(i + ", ");
}
}
}

public static ArrayList<Boolean> findPrime(int maxNum)
{
ArrayList<Boolean> BL = new ArrayList<Boolean>();


//Filling in the list.
for(int i = 0; i < maxNum; i++)
{
BL.add(true);

}

for(int i = 0; i * i <(maxNum); i++)
{
if(BL.get(i) == true)
{
for(int k = i*2; k < maxNum; k = k + i)
{
BL.set(i, false);
}
}

}
return BL;


}

}

一旦我输入任何数字并按回车键,就没有任何效果。我的假设是程序在某处不断循环,必须中断。

最佳答案

你在这里有永无止境的 for 循环:

for(int k = i*2; k < maxNum; k = k + i)

i 是 0 而 k 是 0 所以每一步 k=0+0

关于java - 扫描仪不工作 - Prime Sieve。代码完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21614108/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com