原文: https://www.programiz.com/java-programming/examples/palindrome-number
public class Palindrome {
public static void main(String[] args) {
int num = 121, reversedInteger = 0, remainder, originalInteger;
originalInteger = num;
// reversed integer is stored in variable
while( num != 0 )
{
remainder = num % 10;
reversedInteger = reversedInteger * 10 + remainder;
num /= 10;
}
// palindrome if orignalInteger and reversedInteger are equal
if (originalInteger == reversedInteger)
System.out.println(originalInteger + " is a palindrome.");
else
System.out.println(originalInteger + " is not a palindrome.");
}
}运行该程序时,输出为:
121 is a palindrome number.在这个程序中
- 首先,给定数字(
num)的值存储在另一个整数变量originalInteger中。 这是因为,我们需要在最后比较反向编号和原始编号的值。 - 然后,使用
while循环循环遍历num,直到等于 0。- 在每次迭代中,
number的最后一位存储在remainder中。 - 然后,将
remainder添加到reversedInteger,以便将其添加到下一个位置值(乘以 10)。 - 然后,除以 10 后,从
num中删除最后一位数字。
- 在每次迭代中,
- 最后,比较
reversedInteger和originalInteger。 如果相等,则为回文数。 如果不是,则不是。
以下是执行的步骤:
回文执行步骤
num |
num != 0 |
remainder |
reversedInteger |
|---|---|---|---|
| 121 | true |
1 | 0 * 10 + 1 = 1 |
| 12 | true |
2 | 1 * 10 + 2 = 12 |
| 1 | true |
1 | 12 * 10 + 1 = 121 |
| 0 | false |
- | 121 |
public class Palindrome {
public static void main(String[] args) {
int num = 11221, reversedInteger = 0, remainder, originalInteger;
originalInteger = num;
// reversed integer is stored in variable
for( ;num != 0; num /= 10 )
{
remainder = num % 10;
reversedInteger = reversedInteger * 10 + remainder;
}
// palindrome if orignalInteger and reversedInteger are equal
if (originalInteger == reversedInteger)
System.out.println(originalInteger + " is a palindrome.");
else
System.out.println(originalInteger + " is not a palindrome.");
}
}运行该程序时,输出为:
11221 is not a palindrome.在上面的程序中,使用for循环代替while循环。
在每次迭代中,都会执行num /= 10并检查条件num !=0。