运用Java解决水仙花问题, 要求:输出100-n中哪些数为水仙花(n为未知数,键盘输入进去的),并统计共有多少个 水仙花数
时间: 2024-09-09 13:03:57 浏览: 39
在Java中,我们可以编写一个程序来解决水仙花问题,也被称为 narcissistic number 或者 Armstrong number。这种数是指它的各位数字立方之和等于它本身的三位数。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是简单的Java代码片段,用于找出指定范围内的水仙花数并统计它们的数量:
```java
import java.util.Scanner;
public class NarcissisticNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个范围上限 (100 - n): ");
int limit = scanner.nextInt();
int count = 0;
for (int num = 100; num <= limit; num++) {
if (isNarcissistic(num)) {
System.out.println(num);
count++;
}
}
System.out.println("在1到" + limit + "之间,有 " + count + " 个水仙花数.");
}
// 判断是否为水仙花数的辅助函数
public static boolean isNarcissistic(int num) {
int sum = 0;
String strNum = Integer.toString(num);
for (char digit : strNum.toCharArray()) {
sum += Math.pow(Integer.parseInt(digit), 3);
}
return sum == num;
}
}
```
当你运行这个程序时,会提示用户输入一个范围的上限。然后,它将遍历这个范围内的每个整数,并通过`isNarcissistic`方法检查是否是水仙花数。如果是,就打印出来并增加计数器。最后,会输出总的水仙花数。
阅读全文