public class Main {
/**
* @author jadexu
* @// TODO: 2020/12/26
* 求出所有的水仙花数,水仙化数为3位数,并且每位上的数字的立方和等于该数本身
* 思路:
* 水仙花数为3位,则每位数为1~9,则有9^3种可能的三位数,所以要套三层循环
* 第一层是百位,第二层是十位,第三层是个位
* 计算每位数的立方数,同时储存相应的位数,例如,十位数要乘以10,以便后面获取一个完整的三位数
* 在最后一层,比较每位上的数字的立方和是否等于该数本身,是则输出,否则不输出
*/
public static void main(String[] args) {
int hundred = 0; //百位
int ten = 0; //十位
int one = 0; //个位
int hundredCube = 0; //百位的立方
int tenCube = 0; //十位的立法
int oneCube = 0; //个位的立方
System.out.println("所有的水仙花数有:");
//百位
for (int i = 1; i <= 9; i++) {
hundredCube = (int)Math.pow(i,3);
hundred = i*100;
//十位
for (int j = 0; j <= 9 ; j++) {
tenCube= (int)Math.pow(j,3);
ten = j*10;
//个位
for (int k = 0; k <= 9; k++) {
oneCube = (int)Math.pow(k,3);
one = k;
//计算每位上的数字的立方和
int sum = hundredCube + tenCube + oneCube;
//获取的三位数
int num = hundred + ten + one;
if(sum == num){
System.out.println(num);
}
}
}
}
}
}
Java实现求出所有的水仙花数,水仙化数为3位数,并且每位上的数字的立方和等于该数本身
最新推荐文章于 2022-05-21 21:01:26 发布