首页 > 解决方案 > 用java在代码网站练习时的一个小问题

问题描述

当我用了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));
}

}

输出为真,当我删除“int a = x”时,输出为假

标签: java

解决方案


以下代码段创建了一个从右到左 (321 => 123)res构造的新变量:x

int res = 0;
while(x > 0){
    res = res * 10 + x % 10;
    x /= 10;
}

最后,x如果 是回文res == x

res == a只有当aequals时,您的条件才有效x。而且,当然,如果你只删除 line int a,代码甚至不会编译......


推荐阅读