Java进阶版水仙花
时间: 2023-08-21 21:07:37 浏览: 116
JAVA入门进阶编程50题
水仙花数是指一个 n 位数(n≥3)它的每个位上的数字的 n 次幂之和等于它本身。
例如:153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
以下是 Java 进阶版的水仙花数代码:
```java
import java.util.Scanner;
public class AdvancedDaffodilNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int num = input.nextInt();
int sum = 0;
int digit = 0;
int n = 0;
n = (int)Math.log10(num) + 1; // 计算数位数
int temp = num;
while (temp > 0) {
digit = temp % 10; // 获取每一位数字
sum += Math.pow(digit, n); // 计算每一位数字的 n 次方和
temp /= 10;
}
if (sum == num) {
System.out.println(num + " 是水仙花数。");
} else {
System.out.println(num + " 不是水仙花数。");
}
}
}
```
这个版本的水仙花数计算加入了计算数位数的功能,可以计算任意位数的水仙花数。
阅读全文