题目:
打印出所有的“水仙花数”。
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: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