/**
*
* @author LLJ
* 求水仙花数(a*a*a+b*b*b+c*c*c = abc)
*/
public class ShuiXianHua {
public static void main(String[] args) {
shuixianhau();
}
public static void shuixianhau(){
int j = 0; //初始个数,
for(int i = 100;i < 1000;i++){
int a = i / 100; //百位上的数字
int b = i % 100 / 10; //十位上的数字
int c = i % 10; //个位上的数字
int aaa = a*a*a;
int bbb = b*b*b;
int ccc = c*c*c;
if(aaa+bbb+ccc == a*100+b*10+c){
j++; //每成功1次,j的值就+1
System.out.println("水仙花数可能是第 "+ j + " 种:" + i);
}
}
}
}
简化后的方法为:
/**
* @author LLJ
* @time 2020-5-4 下午7:13:00
* @Description 求水仙花数:
* 提示:所谓水仙花数,是指一个三位数abc,如果满足a*a*a + b*b*b + c*c*c = abc,
* 则abc是水仙花数。
*/
public class Shuixianhua11 {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int a = i/100;
int b = i/10%10;
int c = i%10;
if(a*a*a + b*b*b + c*c*c == i){
System.out.println("水仙花数为:" + i);
}
}
}
}
输出结果为:
水仙花数为:153
水仙花数为:370
水仙花数为:371
水仙花数为:407