在此程序中,您將學(xué)習(xí)如何用Java檢查數(shù)字是否為回文。這是通過(guò)使用for和while循環(huán)來(lái)完成的。
public class Palindrome {
public static void main(String[] args) {
int num = 121, reversedInteger = 0, remainder, originalInteger;
originalInteger = num;
//反向整數(shù)存儲(chǔ)在變量中
while( num != 0 )
{
remainder = num % 10;
reversedInteger = reversedInteger * 10 + remainder;
num /= 10;
}
//如果orignalInteger和reversedInteger相等,則回文
if (originalInteger == reversedInteger)
System.out.println(originalInteger + " 是回文。");
else
System.out.println(originalInteger + " 不是回文。");
}
}運(yùn)行該程序時(shí),輸出為:
121 是回文。
在這個(gè)程序中
首先,給定數(shù)字(num)的值存儲(chǔ)在另一個(gè)整數(shù)originalInteger變量中。這是因?yàn)椋覀冃枰谧詈蟊容^反向數(shù)字和原始數(shù)字的值。
然后,使用while循環(huán)循環(huán)遍歷num,直到等于0。
每次迭代時(shí),num的最后一位存儲(chǔ)在中remainder。
然后,將余數(shù)添加到reversedInteger,以便將其添加到下一個(gè)位置值(乘以10)。
然后,除以10后從num中刪除最后一位數(shù)字。
最后,reversedInteger和originalInteger進(jìn)行比較。如果相等,則為回文數(shù)。如果不等,則不是。
以下是執(zhí)行的步驟:
| 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;
//反轉(zhuǎn)整數(shù)存儲(chǔ)在變量中
for( ;num != 0; num /= 10 )
{
remainder = num % 10;
reversedInteger = reversedInteger * 10 + remainder;
}
//回文,如果原整數(shù)和反整數(shù)相等
if (originalInteger == reversedInteger)
System.out.println(originalInteger + " is a palindrome.");
else
System.out.println(originalInteger + " is not a palindrome.");
}
}運(yùn)行該程序時(shí),輸出為:
11221 is not a palindrome.
在上面的程序中,使用for循環(huán)代替while循環(huán)。
在每次迭代中,num /= 10都會(huì)執(zhí)行并檢查條件num !=0。