当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » Java  » 编程基础
zhucb2009

水仙花算法

zhucb2009 发布于 2013年10月24日 17时, 4评/801阅
分享到: 
收藏 +0
2
水仙花的算法
标签: <无>

代码片段(1) [全屏查看所有代码]

1. [代码][Java]代码     跳至 [1] [全屏预览]

import java.util.HashMap;
import java.util.Map;

public class Shuixianhua2 {

	public static void main(String[] args) {
		int max=3;
		Map<String,Integer> map=new HashMap<String,Integer>();
		for(int i=0;i<10;i++)
		{
			map.put(String.valueOf(i), (int) Math.pow(i, max));
		}
		System.out.println(max+"位数水仙花");
		long time1=System.currentTimeMillis();
		for(long i=(long) Math.pow(10, max-1);i<(long) Math.pow(10, max);i++)
		{
			String str=String.valueOf(i);
			int len=str.length();
			long sum=0;
			int num=0;
			for(int k=0;k<len;k++)
			{

				String key=String.valueOf(str.charAt(k));
				num=map.get(key);
				sum+=num;
				if(sum>i)
				{
					break;
				}
			}
			
			if(sum==i)
			{
					
			   System.out.println(i);
			}
		}
		long time2=System.currentTimeMillis();
		System.out.println("共耗时:"+(time2-time1)+"ms");
		
	}

}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(4)

  • 1楼:G宇飞 发表于 2013-10-24 21:36 回复此评论
    利用Map来索引指定幂值,不错的想法
  • 2楼:IMer 发表于 2013-10-24 22:20 回复此评论
    你的头像是什么花?
  • 3楼:zhucb2009 发表于 2013-10-25 09:23 回复此评论
    感觉这个幂值多是重复的,所以用个map来存储
  • 4楼:习总 发表于 2013-10-27 17:11 回复此评论
    算7位的就比较慢了啊,用7个for反而很快
开源从代码分享开始 分享代码
zhucb2009的其它代码 全部(2)...