题目11:打印出所有的“水仙花数”

题目:

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

程序分析

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

程序代码

package com.ljy.tencent;
/**
 * 1)题目:打印出所有的"水仙花数".
 * 2)所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
 * 3)例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 
 * 4)程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
 * @author liaojianya
 * 2016年10月2日
 */
public class ShuiXianZhiShu
{
    public static void main(String[] args)
    {
        System.out.println("符合“水仙指数”的数为:");
        PrintAll();
    }
    //打印出符合“水仙花数“的所有的数
    public static void PrintAll()
    {
        int count = 0;
        for(int i = 100; i <= 999; i++)
        {
            if(isIndex(i))
            {
                count++;
                System.out.print(i + " ");
                if(count % 10 == 0)
                    System.out.println();
            }
        }
    }
    //判断i是否为"水仙花数"
    public static boolean isIndex(int i)
    {
        int m = i / 100;
        int n = (i - m * 100) / 10;
        int k = i - m * 100 - n * 10;
        int sum = m * m * m + n * n * n + k * k * k;
        if(i == sum)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

结果输出

符合“水仙指数”的数为:
153 370 371 407 

你可能感兴趣的:(题目11:打印出所有的“水仙花数”)