public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("=======开始=======");
//获得 100 - 1000 的所有水仙花数
List<Integer> shuiXianHua = getShuiXianHua();
System.out.println("shuiXianHua = " + shuiXianHua);
//用来测试是不是输出的是不是准确的
do {
int i = input.nextInt();
//输入0用来终止程序
if (i == 0){
break;
}
boolean b = judgeShuiXianHua(i);
System.out.println("是不是水仙花数: " +b);
}while (true);
System.out.println(" ======= 结束 ======" );
}
/**
* 该方法用来获取 100 - 1000 的所有水仙花数
* @return
*/
public static List<Integer> getShuiXianHua(){
List<Integer> list = new ArrayList<>();
for (int i = 100 ; i < 1000 ;i++){
if (judgeShuiXianHua(i)){
//将水仙花数放在list集合中
list.add(i);
}
}
return list;
}
/**
* 判断三位数是不是水仙花数
* @param num
* @return
*/
public static boolean judgeShuiXianHua(int num){
//先将这个数字拆分成 三个数 因此校验
if (num < 100 || num > 1000){
return false;
}
int ge = num % 10 ;
int shi = num % 100 / 10;
int bei = num %1000 / 100 ;
int sum = (ge * ge * ge) + (shi * shi * shi)+(bei * bei * bei);
if (sum == num){
return true;
}
return false ;
}
获取 100 ~ 1000 的水仙花数
最新推荐文章于 2023-03-21 23:27:51 发布