题目:打印出所有的 “水仙花数 “,所谓 “水仙花数 “是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 “水仙花数 “,因为153=1的三次方+5的三次方+3的三次方。
根据题目分析,水仙花是三位数是 个位+十位+百位 自身次方等于该数本身,那么计算一个数是否是水仙花数要将这个数的 个位数 十位数 百位数给分解出来伪代码如下:
a = i/100; //获取3位数中百位的数
b=i%100/10; //获取3位数中十位的数
c=i%100%10; //获取3位数中个位的数
这样就可以通过循环来过滤出一个区间的水仙花数量了
public static void main(String[] args) {
//水仙花获取区间最大数
int end=1000;
for(int start=100;start<end;start++){
int a,b,c=0;
a = start/100; //获取3位数中百位的数
b=start%100/10; //获取3位数中十位的数
c=start%100%10; //获取3位数中个位的数
a = a * a * a; //计算第一位数的立方
b = b * b * b; //计算第二位数的立方
c = c * c * c; //计算第3位数的立方
if ((a + b + c) == start) //如果符合水仙花数
System.out.print("水仙花数 :"+start +" ");
}
}