Java實現求出所有的水仙花數,水仙化數為3位數,並且每位上的數字的立方和等於該數本身
阿新 • • 發佈:2020-12-27
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);
}
}
}
}
}
}