如何用Java编程找出100到1000范围内的所有水仙花数(即一个三位数,其各位数字立方和等于该数本身的数字)?
时间: 2024-10-15 07:12:34 浏览: 10
在Java中,你可以通过循环遍历100到999之间的每一个三位数,然后计算它的百位、十位和个位数的立方和,如果这个和等于原数本身,那么这个数就是水仙花数。以下是简单的步骤:
```java
public class Main {
public static void main(String[] args) {
for (int num = 100; num <= 999; num++) {
int hundred = num / 100;
int ten = (num % 100) / 10;
int one = num % 10;
int sumOfCubes = Math.pow(hundred, 3) + Math.pow(ten, 3) + Math.pow(one, 3);
if (sumOfCubes == num) {
System.out.println(num + " 是水仙花数");
}
}
}
}
```
在这个程序中,我们首先获取数字的每一位,然后计算它们各自的立方,最后检查这个和是否等于原始数字。
相关问题
java水仙花数是一个三位数,其各个位上数字立方和等于它本身。例如:153 = 1*1*1+3*3*3+5*5*5。计算并输出100~1000范围内的水仙花数并粘贴结果截图
在Java中,你可以编写一个简单的程序来找出100到1000之间的所有水仙花数。这是一个示例代码:
```java
public class NarcissisticNumbers {
public static void main(String[] args) {
int lowerBound = 100;
int upperBound = 1000;
for (int i = lowerBound; i <= upperBound; ++i) {
if (isNarcissistic(i)) {
System.out.println(i);
}
}
}
// 判断是否为水仙花数的方法
public static boolean isNarcissistic(int num) {
int sum = 0;
String strNum = String.valueOf(num);
for (char digit : strNum.toCharArray()) {
int digitValue = Character.getNumericValue(digit);
sum += Math.pow(digitValue, 3);
}
return sum == num;
}
}
```
这段代码会遍历给定范围内的每个三位数,检查它们是否满足水仙花数条件,即每个位的立方和等于原数。如果符合条件,就打印出来。
运行这个程序后,你会看到100到1000之间所有的水仙花数。注意,由于这里涉及到的是代码输出,无法直接提供截图,你需要自己在本地环境中运行这段代码查看结果。
如果你需要帮助理解和执行这段代码,或者有其他关于Java编程的问题,请随时提问。
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。java
在 Java 中,你可以通过遍历所有三位数并验证它们是否满足“水仙花数”的条件来找出所有这样的数。这里提供一个简单的示例程序:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) { // 限制在三位数范围内
String str = Integer.toString(i); // 转换为字符串便于操作每一位
int sum = 0;
for (char digit : str.toCharArray()) { // 遍历每位数字
sum += Character.getNumericValue(digit) * Character.getNumericValue(digit) * Character.getNumericValue(digit); // 计算立方和
}
if (sum == i) { // 判断是否满足"水仙花数"
System.out.println(i);
}
}
}
}
```
这个程序会打印出所有满足条件的“水仙花数”,比如153、370、371等。
阅读全文