Java基础学习应用_for循环打印水仙花数

  1. 水仙花数的定义(百度)

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数

2.Java代码

public class TestWaterFlowes {
    public static void main(String[] args) {
        System.out.println("水仙花数方法1");
        waterFlower1();
        System.out.println("=========================");
        System.out.println("水仙花数方法2");
        waterFlower2();
        System.out.println("=========================");
        System.out.println("四叶玫瑰数");
        fourLeafRose();
    }


    public static void waterFlower1(){

        for (int i = 100; i <= 999; i++) {
            int baiwei = i/100;//获取百位上的数字
            int shiwei = (i%100)/10;//获取十位上的数字
            int gewei = i-baiwei*100-shiwei*10;//获取个位上的数字
            if (baiwei*baiwei*baiwei+shiwei*shiwei*shiwei+gewei*gewei*gewei == i) {
                System.out.println(i+"是水仙花数");
            }
        }
    }

    public static void waterFlower2(){

        for (int i = 100; i <= 999; i++) {
            int baiwei = i/100;//获取百位上的数字
            int shiwei = (i/10)%10;//获取十位上的数字
            int gewei = i%10;//获取个位上的数字
            if (baiwei*baiwei*baiwei+shiwei*shiwei*shiwei+gewei*gewei*gewei == i) {
                System.out.println(i+"是水仙花数");
            }
        }
    }

    //四叶玫瑰数
    public static void fourLeafRose(){
        for (int i = 1000; i <=9999; i++) {
            int gewei = i%10;//获取个位数
            int shiwei = i/10%10;//获取十位数
            int baiwei = i/100%10;//获取百位数
            int qianwei = i/1000%10;//获取千位数

            if ((gewei*gewei*gewei*gewei+shiwei*shiwei*shiwei*shiwei+baiwei*baiwei*baiwei*baiwei+
                    qianwei*qianwei*qianwei*qianwei)==i) {
                System.out.println(i+"四叶玫瑰数");
            }
        }
    }
}

结果

水仙花数方法1
153是水仙花数
370是水仙花数
371是水仙花数
407是水仙花数

=========================
水仙花数方法2
153是水仙花数
370是水仙花数
371是水仙花数
407是水仙花数

=========================
四叶玫瑰数
1634四叶玫瑰数
8208四叶玫瑰数
9474四叶玫瑰数


你可能感兴趣的:(Java学习应用)