帮我写个java水仙花数代码
时间: 2023-08-31 17:39:13 浏览: 113
21位水仙花数JAVA代码
5星 · 资源好评率100%
### 回答1:
好的,那我们可以从以下几步入手:
1. 什么是水仙花数?
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:153=1^3+5^3+3^3。
2. 怎么用 Java 来求解?
我们可以使用一个循环来遍历所有的 3 位数,然后判断它是否是水仙花数。
3. 具体实现
首先,让我们来写一个函数来判断一个数是否是水仙花数:
```
public static boolean isNarcissisticNumber(int num) {
int originalNum = num;
int result = 0;
while (num != 0) {
int remainder = num % 10;
result += Math.pow(remainder, 3);
num /= 10;
}
if (result == originalNum) {
return true;
}
return false;
}
```
然后,我们可以在主函数中使用循环来遍历所有的 3 位数:
```
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
if (isNarcissisticNumber(i)) {
System.out.println(i + " is a narcissistic number.");
}
}
}
```
这样就可以在控制台输出所有的水仙花数了。
### 回答2:
水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,当n等于3时,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。现在我来帮你写一个Java程序来判断并输出n位数中的水仙花数。
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int n = 3; // 定义n的值为3
System.out.println(n + "位数的水仙花数有:");
for (int i = (int) Math.pow(10, n-1); i < Math.pow(10, n); i++) {
int num = i;
int sum = 0;
while (num > 0) {
int digit = num % 10; // 获取个位数
sum += Math.pow(digit, n); // 求和
num /= 10; // 去除个位数
}
if (sum == i) {
System.out.println(i);
}
}
}
}
```
以上是一个简单的Java程序,它可以输出给定位数n的水仙花数。你可以将n的值修改为你想要的位数,然后运行程序即可输出符合条件的水仙花数。希望能对你有所帮助!
### 回答3:
当然可以!以下是一个简单的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 result = 0;
int numOfDigits = String.valueOf(number).length();
while (number != 0) {
int digit = number % 10;
result += Math.pow(digit, numOfDigits);
number /= 10;
}
return result == originalNumber;
}
}
```
这个代码示例会输出从100到999之间的水仙花数。isNarcissisticNumber() 方法用于判断一个数是否为水仙花数。它通过计算每一位数字的幂和,将结果与原始数进行比较来确定是否为水仙花数。
阅读全文