编写一个Java应用程序,用户从键盘输入一个整数,程序判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。
时间: 2024-10-19 11:11:47 浏览: 41
mul.rar_MUL汇编程序_汇编语言 输入两个1位十进制数
5星 · 资源好评率100%
在Java中,编写一个简单的命令行程序来判断一个整数的位数以及是否为回文数,你可以按照以下步骤:
1. **获取用户输入**:
首先,你需要创建一个`Scanner`对象来获取用户的输入。
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = scanner.nextInt();
```
2. **判断位数**:
计算整数的位数可以通过取对10的余数和除以10的商来实现,直到商变为0。
```java
int digitCount = 0;
while (number != 0) {
digitCount++;
number /= 10;
}
System.out.printf("输入的数共有%d位数.\n", digitCount);
```
3. **判断回文数**:
使用两个变量分别保存原数和它的逆序版本,然后比较它们是否相等。
```java
boolean isPalindrome = true;
int reversedNumber = 0;
for (int i = digitCount - 1; i >= 0; i--) {
reversedNumber = reversedNumber * 10 + number % 10;
number /= 10;
if (number != reversedNumber) {
isPalindrome = false;
break;
}
}
System.out.println(isPalindrome ? "这是一个回文数." : "这不是一个回文数.");
}
```
完整代码如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = scanner.nextInt();
int digitCount = 0;
while (number != 0) {
digitCount++;
number /= 10;
}
int reversedNumber = 0;
for (int i = digitCount - 1; i >= 0; i--) {
reversedNumber = reversedNumber * 10 + number % 10;
number /= 10;
if (number != reversedNumber) {
System.out.println("这不是一个回文数.");
return;
}
}
System.out.println("这是一个回文数.");
}
}
```
阅读全文