Java求水仙花数的三种方法

版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创!


恰饭广告




水仙花数:水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:370=33+73+00;371=33+73+13,370、371就是一个水仙花数

注意:要判断一个三位数是不是水仙花数,得先取得这个三位数的的个位,十位和百位

普通for循环:

public class Daffodil {
    public static void main(String[] args) {
        int count = 0;        //定义水仙花数的个数
        for(int i=100;i<=10000;i++){  //水仙花数范围
            int b = i/100;        //取得百位数
            int s = (i-100*b)/10;        //取得十位数
            int g = (i-s*10-b*100);        //取得个位数
            if(i==g*g*g+s*s*s+b*b*b){  //水仙花数判定
                System.out.print(i+" ");    //输出符合条件的数
                count++;
            }
        }
        System.out.println();        //换行
        System.out.println("水仙花数总共有"+count+"个");    //输出水仙花数的总数
    }
}

while循环:

public class Daffodil {
    public static void main(String args[]){
        int i=100;
        int count=0;  //定义水仙花数的个数
        while(i<10000){
            int b = i/100;        //取得百位数
            int s = (i-100*b)/10;        //取得十位数
            int g = (i-s*10-b*100);        //取得个位数
            
            if(i==g*g*g+s*s*s+b*b*b){  //水仙花数判定
                System.out.print(i+" ");    //输出符合条件的数
                count++;
            }
            i+=1;
        }
        System.out.println();
        System.out.println("水仙花数总共有"+count+"个");    //输出水仙花数的总数
    }
}

do-while循环:

public class Daffodil {
    public static void main(String args[]){
        int i=100;
        int count=0;  //定义水仙花数的个数
        do{
            i+=1;
            int b = i/100;        //取得百位数
            int s = (i-100*b)/10;        //取得十位数
            int g = (i-s*10-b*100);        //取得个位数
            if(i==g*g*g+s*s*s+b*b*b){  //水仙花数判定
                System.out.print(i+" ");    //输出符合条件的数
                count++;
            }
        }while(i<10000);
        System.out.println();
        System.out.println("水仙花数总共有"+count+"个");    //输出水仙花数的总数
    }
}

原文链接:https://www.idaobin.com/archives/343.html

让我恰个饭吧.ヘ( ̄ω ̄ヘ)

支付宝 ——————- 微信
图片加载中图片加载中



恰饭广告

发表评论

邮箱地址不会被公开。 必填项已用*标注

63 ÷ = 9