题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+ 5的三次方 +3 的三次方。
程序分析:利用 for循环控制100-999个数,每个数分解出个位,十位,百位。
public static void main(String[] args) {
List list = new ArrayList();
for(int i = 100; i < 999; i++){
String str = String.valueOf(i);
if(test(str))
list.add(i);
}
System.out.println(list);
}
public static boolean test(String str){
int sum = 0;
for(int i = 0; i < str.length(); i++){
String j = String.valueOf(str.charAt(i));
int k = Integer.valueOf(j);
sum += k*k*k;
}
if(sum == Integer.valueOf(str)){
return true;
}
return false;
}