---------------------------------------天道酬勤
打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
注:解决这个问题关键就在于如何获取每一位的数字,对于十进制数,模10即可得低位数字
代码如下:
import java.util.ArrayList;
import java.util.ListIterator;
class Test11
{
public static void main(String[] args)
{
Test11.display(1,1000);
}
public static boolean judge(long num)
{
ArrayList<Byte> list=new ArrayList<Byte>();
if(1==num)
return true;
if(num<10)
return false;
long temp=num;
while(temp>0)
{
list.add((byte)(temp%10));
temp=temp/10;
}
temp=0;
for(ListIterator<Byte> it=list.listIterator();it.hasNext();)
{
Byte i=it.next();
temp=temp+i*i*i;
}
if(temp==num)
return true;
return false;
}
public static void display(long i,long j)
{
for(long k=i;k<=j;k++)
{
if(Test11.judge(k))
System.out.println(k);
}
}
}