水仙花数是指一个N位正整数(7≥N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 要求编写java程序,计算所有N位水仙花数。
时间: 2024-10-11 20:12:12 浏览: 59
水仙花数是一种有趣的数学概念,在编程中,我们可以通过遍历一定范围内的正整数,并对每位数取N次方后求和,判断是否等于原数,以此来找出所有的N位水仙花数。以下是简单的Java代码示例:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int start = 100; // 只考虑三位及以上的水仙花数
int end = 999; // 四位最大水仙花数是9999
for (int number = start; number <= end; number++) {
if (isNarcissistic(number)) {
System.out.println(number);
}
}
}
// 判断一个数是否为水仙花数的函数
private 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, strNum.length()); // N次幂之和
}
return sum == num; // 如果和等于原数,则是水仙花数
}
}
```
在这个程序中,`isNarcissistic`函数负责检查给定的数字是否是水仙花数。主函数则通过循环从三位数开始,逐个检查,找到符合条件的就打印出来。
阅读全文