编写一个java程序,打印10000以内的水仙花数。
时间: 2024-03-01 13:51:32 浏览: 109
好的,以下是符合您要求的Java代码:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) { // 100-999之间的数才有可能是水仙花数
int a = i / 100; // 获取百位数
int b = (i / 10) % 10; // 获取十位数
int c = i % 10; // 获取个位数
int sum = a * a * a + b * b * b + c * c * c; // 求出各位立方和
if (sum == i) { // 判断是否为水仙花数
System.out.println(i);
}
}
}
}
```
代码中,我们通过一个for循环遍历100-999之间的所有数,然后依次获取它们的百位数、十位数和个位数,并分别求出各位立方和。如果各位立方和等于这个数本身,就说明这个数是水仙花数,我们就可以通过System.out.println()方法将它打印出来。因为10000以内的水仙花数只有153、370、371和407,所以我们可以只遍历100-999之间的数。
相关问题
用Java编写一个程序,打印出所有水仙花数
水仙花数是指一个三位数,它的各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。在Java中,可以编写一个简单循环来检查所有的三位数是否为水仙花数。以下是一个示例程序:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int number = 100; number < 1000; number++) { // 只考虑三位数
if (isNarcissistic(number)) {
System.out.println(number);
}
}
}
// 检查一个数是否为水仙花数
public static boolean isNarcissistic(int num) {
int sumOfCubes = 0;
String strNum = String.valueOf(num); // 转换为字符串获取每一位数字
for (char digit : strNum.toCharArray()) {
sumOfCubes += Character.getNumericValue(digit) * Character.getNumericValue(digit) * Character.getNumericValue(digit);
}
return sumOfCubes == num;
}
}
```
当你运行这个程序,它会打印出100到999之间所有的水仙花数。
Java程序打出10000内水仙花数
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。在Java中,我们可以编写一个简单的程序来找出10000范围内的所有水仙花数。下面是一个基本的示例:
```java
public class NarcissisticNumbers {
public static void main(String[] args) {
int limit = 10000;
for (int i = 100; i < limit; i++) {
if (isNarcissistic(i)) {
System.out.println(i);
}
}
}
// 检查一个数是否是水仙花数
private static boolean isNarcissistic(int number) {
int sumOfCubes = 0;
String digits = Integer.toString(number);
for (char digit : digits.toCharArray()) {
int digitValue = Character.getNumericValue(digit);
sumOfCubes += Math.pow(digitValue, 3);
}
return sumOfCubes == number;
}
}
```
这个程序会打印出10000范围内的所有水仙花数。
阅读全文