美文网首页基础编程50题
【题目03】打印出所有的 "水仙花数 "

【题目03】打印出所有的 "水仙花数 "

作者: Xplorist | 来源:发表于2017-03-25 14:18 被阅读108次

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

    package com.share.test01_10;
    
    /**
     * 【程序3】题目:<br>
     * 打印出所有的 "水仙花数 ",所谓 "水仙花数 " 是指一个三位数,其各位数字立方和等于该数本身。<br>
     * 例如:153是一个 "水仙花数 " ,因为153=1的三次方+5的三次方+3的三次方。
     * 
     * @author brx
     */
    public class Test03 {
        public static void main(String[] args) {
            test1();
        }
    
        /**
         * test()方法简述:<br>
         * 思路:将一个数的个十百位分别分离出来,然后将判断它们的立方和是否等于它本身<br>
         * 思路1:整形数据处理<br>
         * 思路2:字符串处理
         * 
         * @param s
         *            个位(singles)
         * @param t
         *            十位(tens)
         * @param h
         *            百位(hundreds)
         * 
         */
        public static void test() {
            System.out.println("水仙花数:");
            for (int i = 100; i < 1000; i++) {
                int s = i % 10;
                int t = i % 100 / 10;
                int h = i / 100;
                if (i == s * s * s + t * t * t + h * h * h) {
                    System.out.println(i);
                }
            }
        }
    
        /**
         * 思路2
         */
        public static void test1() {
            System.out.println("水仙花数:");
            for (int i = 100; i < 1000; i++) {
                String str = String.valueOf(i);
                int s = Integer.parseInt(String.valueOf(str.charAt(2)));
                int t = Integer.parseInt(String.valueOf(str.charAt(1)));
                int h = Integer.parseInt(String.valueOf(str.charAt(0)));
                if (i == s * s * s + t * t * t + h * h * h) {
                    System.out.println(i);
                }
            }
        }
    
    }
    
    

    相关文章

      网友评论

        本文标题:【题目03】打印出所有的 "水仙花数 "

        本文链接:https://www.haomeiwen.com/subject/vvrcottx.html