示例1:使用while循环检查回文的程序
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。
- 每次迭代时, num的最后一位存储在剩下的数中 。
- 然后,将余数添加到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 |
示例2:使用for循环检查回文的程序
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
。