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
。