#java #compare #palindrome
#java #Сравнить #палиндром
Вопрос:
Я пытаюсь закодировать то, что пользователь вводит число n, а программа выводит все числа от 1 до n, которые являются как простыми числами, так и палиндромными числами. Я создал метод для поиска простых чисел, а другой — для определения, является ли число палиндромом. Мой код для вывода целых чисел, которые являются обоими, выглядит так
if ((prime(y)==true) amp;amp; (pal(y)==n)) {
System.out.println(y);
}
Вот мой метод поиска простых чисел:
public static boolean prime(int n) {
int x = 2;
while (n%x>0) {
x =1;
} if (x==n) {
return true;
} else {
return false;
}
}
Вот мой метод поиска чисел палиндрома:
public static boolean pal(int n) {
int rev = 0;
int rmd = 0;
while (n>0) {
rmd = n%10;
rev = rev*10 rmd;
n = n/10;
} if (rev==n) {
return true;
} else {
return false;
}
}
Я получаю сообщение об ошибке, что эти два метода не сопоставимы, потому что, по-видимому, один является логическим, а другой целым числом. Кто-нибудь знает, как это исправить?
Комментарии:
1. Когда вы сравниваете два метода в сравнении secod:
if (pal(y) == n)
вы сравниваете логическое значение (pal) с целым числом (n)
Ответ №1:
В вашем заявлении говорится pal(y)==n
, но pal(y)
возвращается логическое значение. Я не уверен, с чем его сравнивать n
.
В общем, избегайте таких утверждений, как foo == true
. Если это уже логическое значение, просто используйте foo
или для false !foo
.
Комментарии:
1. О, СПАСИБО, это была просто глупая ошибка с моей стороны