水仙花问题的求解

♀尐吖头ヾ 提交于 2019-12-20 17:25:29

---------------------------------------天道酬勤

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!