打印出所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。(Java经典编程案例)

238 阅读1分钟

题目:
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

程序分析:
利用for循环控制100-999的数,每个数分解出个位,十位,百位。

代码如下:

public class Demo2 {
    public static void main(String[] args) {
        //打印出所有的"水仙花数"
        //利用for循环控制100-999的数,每个数分解出个位,十位,百位。
        int i=100;                  //声明变量及赋初始值
        int x,y,z;

        while(i<=999){              //分别取出各个位上的数字

            x=i%10;                 //个位
            y=i/10%10;              //十位
            z=i/100;                //百位

            if(i==x*x*x+y*y*y+z*z*z){   //判断

                System.out.println(i);
            }
            i++;
        }
    }
}

//for循环
public class test {
    public static void main(String[] args) {
        int a,b,c;
        for(int i=100;i<=999;i++){
            a=i/100;
            b=i/10%10;
            c=i%10;
            if(i==a*a*a+b*b*b+c*c*c){
                System.out.println(i);
            }
        }
    }
}

代码执行结果如下:
在这里插入图片描述