我尝试编码的是用户输入数字n,程序输出从1到n的所有数字,这些数字都是素数和回文数。 我创建了一种查找素数的方法,另一种用于查找数字是否为回文。我输出整数的代码就像
if ((prime(y)==true) && (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;
}
}
我得到的错误是这两个方法无法比较,因为显然一个是布尔值而另一个是整数。任何人都知道如何解决这个问题?
答案 0 :(得分:3)
你的陈述是pal(y)==n
,但pal(y)
返回一个布尔值。我不确定将它与n
进行比较应该做什么。
一般情况下,请避免使用foo == true
等语句。如果它已经是布尔值,只需使用foo
或假!foo
。