java - 用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”时,输出为假
解决方案
以下代码段创建了一个从右到左 (321 => 123)res
构造的新变量:x
int res = 0;
while(x > 0){
res = res * 10 + x % 10;
x /= 10;
}
最后,x
如果 是回文res == x
。
res == a
只有当a
equals时,您的条件才有效x
。而且,当然,如果你只删除 line int a
,代码甚至不会编译......
推荐阅读
- reactjs - 在 React 中使用 map() 生成的组件中隐藏子组件
- c++ - 如何修复“PCH 警告:标头停止不在文件范围内”
- java - XSL 多列切换
- shell - 如何从makefile中的字符串中分离出版本号?
- c++ - emscripten 和 boost 库:如何为 webassembly 编译现有项目?
- python - 检测日期浓度(python中的列表)
- c# - 模拟hostingenvironment.mappath apicontroller c#
- java - CloseableHttpClient 抛出错误:org.apache.http.impl.execchain.RetryExec execute with java.net.SocketException
- php - PHP将字节转换为字节数组
- javascript - React Table:row.original 属性在同一个 console.log 中评估不同