当我使用int a = x
,最后返回true
时,而当我不使用int a = x
时,然后return false
,请告诉我为什么这么做
添加int a = x 源代码是这样的:
public class solution009 {
public boolean isPalindrome(int x) {
int res = 0;
int a = x;
if (x < 0 || x > 0 && x % 10 == 0)
return false;
while(x > 0){
res = res * 10 + x % 10;
x /= 10;
}
return res == a;
}
public static void main(String[] args) {
solution009 s9 = new solution009();
System.out.println(s9.isPalindrome(121));
}
}
输出为true,当我删除“ int a = x”时,输出为fasle
答案 0 :(得分:0)
以下代码段创建了一个新变量res
,该变量是由x
从右向左构造的(321 => 123):
int res = 0;
while(x > 0){
res = res * 10 + x % 10;
x /= 10;
}
最后,如果x
,则res == x
是回文。
您的条件res == a
仅在a
等于x
时有效。而且,当然,如果仅删除行int a
,则代码甚至都不会编译...