案例解析
回文数判断
设n是一任意自然数,若将n的各位数字反向排列所得自然数m与n相等,则称n为一回文数。编写程序,从键盘输入一个1~65535之间的数,判断这个数是几位数,并判断这个数是否是回文数。
# 源文件保存为“PalindromeNumber.java”
import java.util.Scanner;
public class PalindromeNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个1~65535之间的自然数:");
int number = scanner.nextInt();
// 判断输入是否合法
if(number < 1 || number > 65535) {
System.out.println("输入的数字超出范围!");
return;
}
// 判断是几位数
int temp = number;
int digitCount = 0;
while(temp != 0) {
temp /= 10;
digitCount++;
}
System.out.println("这是一个" + digitCount + "位数");
// 判断是否是回文数
temp = number;
int reversedNumber = 0;
while(temp != 0) {
reversedNumber = reversedNumber * 10 + temp % 10;
temp /= 10;
}
if(number == reversedNumber) {
System.out.println(number + "是回文数");
} else {
System.out.println(number + "不是回文数");
}
scanner.close();
}
}
运行结果
输入12345
请输入一个1~65535之间的自然数:12345
这是一个5位数
12345不是回文数
输入12321
请输入一个1~65535之间的自然数:12321
这是一个5位数
12321是回文数
代码解析:
- 使用Scanner获取用户输入的数字
- 第一个while循环计算数字的位数:不断除以10直到为0,统计循环次数
- 第二个while循环反转数字:每次取出最后一位,拼接到反转数上
- 最后比较原数字和反转后的数字是否相同
字符串方式判断回文数
# 源文件保存为“StringPalindrome.java”
import java.util.Scanner;
public class StringPalindrome {
public