1. 程式人生 > 實用技巧 >2020年7月24日 3位數的水仙花數 三個方法

2020年7月24日 3位數的水仙花數 三個方法

/*
5、輸出所有的水仙花數,
所謂水仙花數是指一個3位數,其各個位上數字立方和等於其本身。
例如: 153 = 1*1*1 + 5*5*5 + 3*3*3 
*/
class Test06_Exer5_2{
    public static void main(String[] args){
        System.out.println("所有的水仙花數如下:");
        //水仙花數是指一個3位數==>水仙花數的範圍[100,999]
        int i=100;
        while( i<=999 ){
            /*
            對於每一個i的值,我們要幹什麼?
            (1)求出i的百、十、個位的值
            (2)判斷i的百位的立方+十位的立方+個位的立方是否等於i,
                如果相等,就輸出i
            
*/ //(1)求出i的百、十、個位的值 int bai = i/100; int shi = i/10%10; int ge = i%10; //(2)判斷i的百位的立方+十位的立方+個位的立方是否等於i, // 如果相等,就輸出i if(i == bai*bai*bai + shi*shi*shi + ge*ge*ge){ System.out.println(i); } i
++; } } }
/*
5、輸出所有的水仙花數,
所謂水仙花數是指一個3位數,其各個位上數字立方和等於其本身。
例如: 153 = 1*1*1 + 5*5*5 + 3*3*3 
*/
class Test06_Exer5{
    public static void main(String[] args){
        System.out.println("所有的水仙花數如下:");
        //水仙花數是指一個3位數==>水仙花數的範圍[100,999]
        for(int i=100; i<=999; i++){
            
/* 對於每一個i的值,我們要幹什麼? (1)求出i的百、十、個位的值 (2)判斷i的百位的立方+十位的立方+個位的立方是否等於i, 如果相等,就輸出i */ //(1)求出i的百、十、個位的值 int bai = i/100; int shi = i/10%10; int ge = i%10; //(2)判斷i的百位的立方+十位的立方+個位的立方是否等於i, // 如果相等,就輸出i if(i == bai*bai*bai + shi*shi*shi + ge*ge*ge){ System.out.println(i); } } } }
class Test5{
    public static void main(String[] args){
        int bai = 1;
        int shi = 0;
        int ge = 0;
        while(bai < 10){
            while(shi < 10){
                while(ge < 10){
                    if(bai*100 + shi*10 + ge == bai*bai*bai + shi*shi*shi + ge*ge*ge){
                System.out.println(bai*100 + shi*10 + ge);
                }
                ge += 1;
                }
            ge = 0;
            shi += 1;
            }
        ge = 0;
        shi = 0;
        bai += 1;
        }
    }
}