gpt4 book ai didi

java - 为什么我的方法在运行时会重复

转载 作者:行者123 更新时间:2023-12-01 17:03:30 25 4
gpt4 key购买 nike

public class PalindromicPrimes {

public static void main (String[] args) {
userInt();
System.out.println("The palindromic primes less than " + userInt() +
" are:");
for (int i = 0; i <= userInt(); i++) {
if (isPrime() && isPalindrome()) {
System.out.println(i);
}
}

}

private static boolean isPrime() {
if (userInt() == 2 || userInt() == 3) {
return true;
}
if (userInt() % 2 == 0) {
return false;
}
int sqrt = (int) Math.sqrt(userInt()) + 1;
for (int i = 3; i < sqrt; i += 2) {
if (userInt() % i == 0) {
return false;
}
}
return true;
}

private static boolean isPalindrome() {
if (userInt() < 0)
return false;
int div = 1;
while (userInt() / div >= 10) {
div *= 10;
}
while (userInt() != 0) {
int x = userInt();
int l = x / div;
int r = x % 10;
if (l != r)
return false;
x = (x % div) / 10;
div /= 100;
}
return true;
}
private static int userInt() {
Scanner s = new Scanner(System.in);
System.out.print("Enter a positive integer: ");
int userInt = s.nextInt();
return userInt;
}
}

是否有不同的方式来获取用户输入?或者我可以保持这样吗?当它运行时,它只是不断提示用户输入。

最佳答案

像这样重新排列:

public static void main (String[] args) {

//get it and save it here!
int userValue = userInt();
System.out.println("The palindromic primes less than " + userValue +
" are:");
for (int i = 0; i <= userValue; i++) {
if (isPrime(userValue) && isPalindrome(userValue)) {
System.out.println(i);
}
}

}

然后还更新所有关心此“userInt”值的方法。

每次调用 userInt() 时,您都在告诉代码从命令行获取新值。

关于java - 为什么我的方法在运行时会重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532972/

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