1. 程式人生 > 其它 >Java實現求出所有的水仙花數,水仙化數為3位數,並且每位上的數字的立方和等於該數本身

Java實現求出所有的水仙花數,水仙化數為3位數,並且每位上的數字的立方和等於該數本身

技術標籤:Java案例Javajava

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); } } } } } }

在這裡插入圖片描述