1. 求出所有的水仙花数。水仙花数是一个3位整数,其各位的立方和等于这个数本身。 2. 编写一个Java应用程序。从键盘输入一个数,判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。
时间: 2025-06-22 22:39:53 浏览: 14
1. 水仙花数(Narcissistic Number)指的是一个n位正整数,其各个位上的数字的n次方之和等于该数自身。在Java中,你可以编写如下的代码来找出所有三位的水仙花数:
```java
public class NarcissisticNumbers {
public static void main(String[] args) {
for (int i = 100; i < 1000; ++i) { // 只考虑三位数
int num = i;
int sum = 0;
while (num != 0) {
int digit = num % 10;
sum += Math.pow(digit, 3);
num /= 10;
}
if (sum == i) {
System.out.println(i + " 是一个水仙花数");
}
}
}
}
```
这段代码遍历了100到999之间的每个数,检查它们是否满足水仙花数的条件。
2. 对于第二点,你需要编写一个程序来获取用户的输入,计算它的位数并检查是否为回文。以下是一个简单的示例:
```java
import java.util.Scanner;
public class PalindromeNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int input = scanner.nextInt();
int length = String.valueOf(input).length(); // 获取数字的位数
String reversed = ""; // 创建空字符串用于存放反转后的数字
for (int i = length - 1; i >= 0; --i) {
reversed += input % 10;
input /= 10;
}
if (input == 0 && length % 2 == 0 || input == 0 && length % 2 == 1) { // 如果数字长度为偶数或奇数但中间没有0,直接比较
if (reversed.equals(String.valueOf(input))) {
System.out.println(input + " 是一个回文数");
} else {
System.out.println(input + " 不是回文数");
}
} else if (input == 0) { // 如果中间有0,先去掉中间的0再比较
if (reversed.equals(reversed.replaceFirst("0", ""))) {
System.out.println(input + " 是一个回文数");
} else {
System.out.println(input + " 不是回文数");
}
} else {
System.out.println(input + " 不是回文数,因为它包含非零数字");
}
}
}
```
在这个程序中,我们首先读取用户输入,然后分别计算输入数字的位数和反转后的字符串,最后进行比较判断。
阅读全文
相关推荐

















