Java 题解 | #牛的回文编号#
牛的回文编号
https://www.nowcoder.com/practice/f864e31a772240f1b4310fbdc27fad48
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param x int整型
* @return bool布尔型
*/
public boolean isPalindrome (int x) {
// write code here
if (x < 0) {
return false; // 负数不是回文数
}
int reversed = 0;
int original = x;
while (x != 0) {
int digit = x % 10; // 获取最低位数字
reversed = reversed * 10 + digit; // 将数字反转
x /= 10; // 去除最低位数字
}
return original == reversed;
}
}
代码挺简单的
Java代码
该题主要考察的知识点是判断一个整数是否为回文数,并使用循环和取余运算来实现数字的反转。
代码的文字解释如下:
- 判断输入的整数
x是否小于 0,如果小于 0,则直接返回false,因为负数不是回文数。 - 定义两个变量
reversed和original,其中reversed用于记录反转后的数字,original记录原始的输入数字x。 - 进入循环,判断
x是否为 0:如果不为 0,则通过取余运算获取 x 的最低位数字并赋给变量 digit。将 digit 加到 reversed 的末尾,同时将 reversed 左移一位(相当于乘以 10)。将 x 除以 10,去掉最低位数字。迭代直到 x 为 0,即将整个数字反转完毕。 - 返回判断
original和reversed是否相等的结果,如果相等说明是回文数,返回true;否则,返回false。

查看18道真题和解析