使用java写出下面的代码:水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:371=33+73+13,371就是一个水仙花数。找出所有水仙花数.
时间: 2024-09-20 15:05:52 浏览: 34
在Java中,你可以编写一个循环来遍历所有三位数,然后对每个数的每一位求立方并相加,判断结果是否等于原数。以下是相应的代码:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int hundreds = i / 100;
int tens = (i / 10) % 10;
int ones = i % 10;
if (hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones == i) {
System.out.println(i + " 是一个水仙花数");
}
}
}
}
```
这段代码会依次检查100到999之间的每一个数,如果是水仙花数,则打印出来。
相关问题
用Java写一个程序打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方.
当然,以下是使用Java编写的简单程序,用于找出并打印所有的"水仙花数":
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int num = 100; num < 1000; num++) { // 遍历100到999之间的所有三位数
int digits[] = new int[3]; // 存储每一位数字
int sumOfCubes = 0;
// 分割三位数
String number = String.valueOf(num);
for (int i = 0; i < 3; i++) {
digits[i] = Integer.parseInt(number.substring(i, i + 1));
sumOfCubes += Math.pow(digits[i], 3);
}
// 检查是否是水仙花数
if (num == sumOfCubes) {
System.out.println(num + " 是一个水仙花数");
}
}
}
}
```
这个程序首先创建一个循环,遍历100到999之间的所有三位数。然后,将每位数字提取出来,并计算它们的立方和。如果这个立方和等于原始数本身,那么这个数就是一个"水仙花数",程序会将其打印出来。
请你用java语言写出以下程序“打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数",因为153-1的三次方+5的三次方+3的三次方。”
在Java中,我们可以编写一个简单的循环来找到所有满足条件的“水仙花数”。以下是一个例子:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
if (isNarcissistic(i)) {
System.out.println(i);
}
}
}
// 检查一个数是否是水仙花数
private static boolean isNarcissistic(int number) {
int sumOfCubes = 0;
String numString = Integer.toString(number);
for (char digit : numString.toCharArray()) {
int digitValue = Character.getNumericValue(digit);
sumOfCubes += Math.pow(digitValue, 3);
}
return sumOfCubes == number;
}
}
```
这个程序遍历100到999之间的每一个整数,如果它的各位数字立方之和等于它自身,那么就认为它是水仙花数并打印出来。
阅读全文