编写一个java程序,用户输入一个1-9999之间的数,程序判断这个数是几位数,并判断这个数是否是回文数。有if-else分枝与while循环语句用法
时间: 2024-10-08 15:07:32 浏览: 22
当编写一个Java程序来解决这个问题时,你可以使用`Scanner`类获取用户的输入,然后通过if-else分支和while循环分别检查数字的位数和是否为回文数。以下是相应的代码示例:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个1到9999之间的整数:");
int num = scanner.nextInt(); // 获取用户输入的整数
// 判断位数
int digitCount = String.valueOf(num).length();
System.out.printf("这个数有%d位.\n", digitCount);
// 判断回文数
boolean isPalindrome = true;
int reversedNum = 0; // 反转后的数
int originalNum = num;
while (num != 0) {
int remainder = num % 10; // 取余数
if (reversedNum != 0 && reversedNum % 10 != remainder) {
isPalindrome = false; // 如果当前位与反转位不符,则不是回文
break;
}
reversedNum = reversedNum * 10 + remainder; // 将反转位添加到已反转的部分
num /= 10; // 清除最后一位
}
if (isPalindrome) {
System.out.println("这是一个回文数.");
} else {
System.out.println("这不是一个回文数.");
}
scanner.close();
}
}
```
阅读全文