java从键盘接收2个整数a和b,输出a与b范围内的水仙花数。
时间: 2024-10-05 07:03:01 浏览: 49
在Java中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153就是水仙花数,因为1^3 + 5^3 + 3^3 = 153。为了接收用户输入的两个整数`a`和`b`,并在它们范围内找出所有的水仙花数,你可以这样做:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入起始范围(a):");
int start = scanner.nextInt();
System.out.println("请输入结束范围(b):");
int end = scanner.nextInt();
if (start >= 100 && start <= 999) { // 只考虑三位数
printWaterLilyNumbers(start, end);
} else {
System.out.println("请输入100至999之间的整数范围.");
}
}
public static void printWaterLilyNumbers(int a, int b) {
for (int num = a; num <= b; num++) {
if (isWaterLilyNumber(num)) {
System.out.println(num);
}
}
}
public static boolean isWaterLilyNumber(int num) {
String strNum = String.valueOf(num); // 转换成字符串便于计算每一位数字
int firstDigit = Character.getNumericValue(strNum.charAt(0));
int secondDigit = Character.getNumericValue(strNum.charAt(1));
int thirdDigit = Character.getNumericValue(strNum.charAt(2));
return Math.pow(firstDigit, 3) + Math.pow(secondDigit, 3) + Math.pow(thirdDigit, 3) == num;
}
}
```
当你运行这段代码并输入起始和结束范围,它会检查每个数是否是水仙花数,并在符合条件的情况下打印出来。
阅读全文