所谓的水仙花数是指一个三位数,其个,十,百三个位数上数字的立方和等于该数本身。
以153为例:
153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
求100~999中的所有“水仙花”数:
//1.获取个位十位百位上的数字
for(int i = 100; i <= 999; i++){ //遍历100~999中的所有数字
int baiwei = i / 100; //此间除法只求商不管余数
int shiwei = i / 10 % 10;
int gewei = i % 10; //模10取余数
//2.求各个位数的立方和
int sum = baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei;
if(sum == i) { //如果满足条件则此数为水仙花数
System.out.println(i); //输出所求范围间的所有水仙花数
}
}
求100~999中的所有“水仙花”数的个数:
这时候要求水仙花个数只需在上面代码的基础上加一个累加步骤就行了
int count = 0;//默认水仙花数的个数
//1.获取个位十位百位上的数字
for(int i = 100; i <= 999; i++){ //遍历100~999中的所有数字
int baiwei = i / 100; //此间除法只求商不管余数
int shiwei = i / 10 % 10;
int gewei = i % 10; //模10取余数
//2.求各个数的立方和
int sum = baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei;
if(sum == i) { //如果满足条件则此数为水仙花数
count++;
System.out.println(i);
}
}
System.out.println("水仙花的个数:" + count);