水仙花数是指一个 3 位数(100~999),它的每个位上的数字的 3次幂之和等于它本身。
例如:153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 +27 = 153
(个位的三次方 + 十位的三次方 + 百位的三次方 = 本身)
思路:
(1)首先,范围在100~999
(2)再者,获取数字的个、十、百位
例如:153
个位: 3 = 153%10 153取余10等于3
十位: 5 = (153/10)%10 153除以10再取余10等于5
百位: 1 = (153/10/10)%10 153除以100再取余10等于1
(3)最后,求个、十、百位的立方和,与本身比较
//输出所有的水仙花数
for( int x = 100; x <= 999; x++){
int ge = x%10; //获取个位
int shi = (x/10)%10; //获取十位
int bai = (x/10%10)%10; //获取百位
if(x == (ge*ge*ge + shi*shi*shi + bai*bai*bai)){
System.out.println(x + "是一个水仙花数。");
}
}