【Java基础】for循环实现在控制台打印水仙花数

代码:

/*
 * 需求:在控制台输出所有的”水仙花数”
 * 
 * 分析:
 *         什么是水仙花数呢?
 *             所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
 *            举例:153就是一个水仙花数。
 *            153 = 1*1*1 + 5*5*5 + 3*3*3
 *
 *        A:三位数其实就告诉了我们水仙花数的范围
 *            100-999
 *        B:如何获取一个数据的每一个位上的数呢?
 *            举例:我有一个数据153,请问如何获取到个位,十位,百位
 *            个位:153%10 = 3;
 *            十位:153/10%10 = 5;
 *            百位:153/10/10%10 = 1;
 *            千位:...
 *            万位:...
 *        C:让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制台输出
 */
public class ForTest {
    public static void main(String[] args) {
        //通过循环获取到每一个三位数
        for(int x=100; x<1000; x++) {
            //获取个位,十位,百位
            int ge = x%10;
            int shi = x/10%10;
            int bai = x/10/10%10;
            
            //让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制台输出
            if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
                System.out.println(x);
            }
        }
    }
}

结果:

猜你喜欢

转载自www.cnblogs.com/niwotaxuexiba/p/10260497.html