2021-04-03 流程控制的逻辑训练任务(分支+循环综合) 5
打印三位数中的所有水仙花数 所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。 如: 153 是一个水仙花数,因为 153= 1³+5³+3³
将三位整数的每一位提取,计算他们的立方和再判断是否等于自身
代码如下:
public class Class4_9 {
public static void main(String[] args) {
int num_1 = 0;//个位
int num_2 = 0;//十位
int num_3 = 0;//百位
//循环所有三位数,从100循环到999
for(int numLoop = 100;numLoop<=999;numLoop++) {
int num = numLoop;
//分解数字
num_1=resolveNum(num);num=(num-=num_1)/10;
num_2=resolveNum(num);num=(num-=num_2)/10;
num_3=resolveNum(num);
//判断水仙花数
if(numLoop==(Math.pow(num_3,3)+Math.pow(num_2,3)+Math.pow(num_1,3))) {
printDaffodilNum(numLoop);
}
}
}
//数字取余
public static int resolveNum(int num) {
num%=10;
return num;
}
//打印水仙花数
public static void printDaffodilNum(int daffodilNum) {
System.out.println(daffodilNum);
}
}
运行结果: