打印所有的水仙花数,Java代码
时间: 2024-04-30 11:20:56 浏览: 12
水仙花数指的是一个三位数,它的每个位上的数字的立方和等于它本身。比如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。下面是Java代码实现:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int a = i / 100; // 百位数
int b = i / 10 % 10; // 十位数
int c = i % 10; // 个位数
if (a * a * a + b * b * b + c * c * c == i) {
System.out.println(i);
}
}
}
}
```
输出结果为:
```
153
370
371
407
```
相关问题
java打印所有水仙花数
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153 = 1^3 + 5^3 + 3^3。
下面是Java代码实现打印所有水仙花数:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int i, j, k; // 分别代表百位、十位、个位
int num; // 三位数
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
num = i * 100 + j * 10 + k;
if (num == i * i * i + j * j * j + k * k * k) {
System.out.print(num + " ");
}
}
}
}
}
}
```
运行程序后,将输出所有水仙花数:153 370 371 407。
水仙花数java代码
### 回答1:
以下是水仙花数的 Java 代码:
```
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int a = i % 10;
int b = i / 10 % 10;
int c = i / 100;
if (i == (a * a * a + b * b * b + c * c * c)) {
System.out.println(i);
}
}
}
}
```
这段代码遍历了 100 到 999 之间的数字,并判断每个数字是否为水仙花数。如果是,则将其输出。
### 回答2:
水仙花数是指一个三位数,其各个位上的数字的立方和等于该数本身。也就是说,如果一个三位数abc满足abc = a^3 + b^3 + c^3,那么abc就是一个水仙花数。
下面是一个用Java语言编写的水仙花数的代码:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int num = 100; num <= 999; num++) {
int hundredsDigit = num / 100; // 获取百位数字
int tensDigit = (num / 10) % 10; // 获取十位数字
int onesDigit = num % 10; // 获取个位数字
int sumOfCubes = (int) (Math.pow(hundredsDigit, 3) + Math.pow(tensDigit, 3) + Math.pow(onesDigit, 3));
if (sumOfCubes == num) {
System.out.println(num + "是一个水仙花数。");
}
}
}
}
```
这段代码中,我们使用一个for循环遍历所有的三位数。在每次循环中,我们通过除法和取余运算获取该数字的百位、十位和个位数字。然后我们计算这三个数字的立方和,并与原数字进行比较。如果相等,就打印出该数字是一个水仙花数。
运行这段代码,将输出所有的水仙花数。
### 回答3:
水仙花数是指一个n位数(n≥3),其每个位上的数字的n次幂之和等于该数本身。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。
以下是一个用Java编写的水仙花数代码示例:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
if (isNarcissisticNumber(i)) {
System.out.println(i);
}
}
}
// 判断一个数字是否为水仙花数
public static boolean isNarcissisticNumber(int number) {
int originalNumber = number;
int sum = 0;
int digits = String.valueOf(number).length();
while (number > 0) {
int digit = number % 10;
sum += Math.pow(digit, digits);
number /= 10;
}
return sum == originalNumber;
}
}
```
以上代码从100到999的范围内遍历每个数,然后通过`isNarcissisticNumber`方法判断该数是否为水仙花数。`isNarcissisticNumber`方法首先保存原始的数字,然后计算每个位上数字的n次幂之和`sum`,最后与原始数字比较是否相等,如果相等返回`true`,否则返回`false`。如果判断为水仙花数,则将其打印输出。