题目:打印出100-999所有的"水仙花数",所谓"水仙花数"是指一个三位数, 其各位数字立方和等于该数本身。
思路:
- 范围100~999,说明要用循环进行范围查找。
- 各位数立方和等于该数本身,指的是水仙花数判断的标准,个位数的立方+十位数的立方+百位数的立方的和等于该数字,例如153,个位数3的三次方+十位数5的立方+百位数1的立方,相当于153=27+125+1
有了上面的解题思路那就可以解题了。
public class Example03 {
public static void main(String[] args) {
for (int n = 100; n <= 999; n++) { //循环遍历范围100-999的数字
int i = n % 10; //个位数
int j = n / 10 % 10; //十位数
int k = n / 100 % 10; //百位数
int num = (int) Math.pow(i, 3); //Math.pow(底数,几次方) 也就是说该数为i的3次方
int num2 = (int) Math.pow(j, 3);
int num3 = (int) Math.pow(k, 3);
if (n == num + num2 + num3) {
System.out.println(" " + n);
}
}
}
}
运行结果: