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

【程序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);
            }
        }
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容