题解 | #水仙花数#
水仙花数
http://www.nowcoder.com/practice/11c9f023a9f84418a15b48792a5f7c70
简单题不太简单啊
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int m = sc.nextInt();
int n = sc.nextInt();
List<Integer> res = new ArrayList<>();
for(int i = m; i <= n; i++){ //遍历 m--n 范围内的数值
int tmp = 0, stp = i, ans = 0;
while(stp != 0){ // 判断当前取整后是否为0,不是则继续
// tmp 暂存当前数 i 除以10的余数(即从右开始取其位数)
tmp = stp % 10;
// stp 暂存当前数 i 除以10的整数(用于判断是否取余到最后一位)
stp /= 10;
// 计算每次所余数的位数的立方和
ans += tmp * tmp * tmp;
}
if(ans == i){ //如果立方和与当前数 i 相等,将其加入 res 数组中
res.add(i);
}
}
if (res.isEmpty()){ //判断得到的 res 数组是否为空,为空输出 no
System.out.println("no");
}else { //不为空,则输出对应符合的水仙花数
for (int index : res){
System.out.print(index + " ");
}
System.out.println();
}
}
}
}