MyException - 我的异常网
当前位置:我的异常网» J2SE » 关于吸血鬼数字,该如何处理

关于吸血鬼数字,该如何处理(2)

www.MyException.Cn  网友分享于:2013-04-27  浏览:15次

multiplying by : 81 and 27

vampire number : 6880
multiplying by : 86 and 80
vampire number : 6880
multiplying by : 86 and 80
vampire number : 6880
multiplying by : 86 and 80
vampire number : 6880
multiplying by : 86 and 80


好像过不了6880,怎么会有四个6880输出呢!

------解决方案--------------------
看下 这个源代码吧 
吸血鬼数字
http://blog.csdn.net/java_cxrs/archive/2008/11/13/3286305.aspx
------解决方案--------------------
你没考虑数字重复问题呃
if(Arrays.equals(a, aa)){ // 比较数组a同aa的内容是否相同
if(!(c[j] % 10 == 0 && c[k] % 10 == 0)){ //剔除两个数都是以0结尾的
count++; //若找到count++
System.out.println("vampire number : " + i +
"\nmultiplying by : " + c[j] + " and " + c[k]);
break lable; //找到一个就ok了 lable就做最上面循环的标签就好了
}
}

------解决方案--------------------
过不了6880,是因为后面确实再没有吸血鬼数字了
有四个6880,是因为两个8,既68 跟 68 是不一样的(8分别是第二个8和第三个8)。 可以通过程序控制。
如果有四个数字相同的吸血贵数字的话,你的程序,就会输出12组数据啦~~~
------解决方案--------------------
看看java2000_net写的吸血鬼数字的程序,这是地址http://blog.csdn.net/java2000_net/archive/2009/01/23/3851203.aspx ,效率很高的
------解决方案--------------------
这是java2000_net写的程序
贴出来大家看下

Java code
 
import java.util.Arrays; 
/** 
* 吸血鬼数字,高效率版本. <br> 
* 一个4位数字,可以拆分2个2位数数字的乘积,顺序不限。 <br> 
* 比如 1395 =15 * 93 

* @author 老紫竹(laozizhu.com) 
*/ 
public class Vampire { 
public static void main(String[] arg) { 
  String[] ar_str1, ar_str2; 
  int sum = 0; 
  int from; 
  int to; 
  int i_val; 
  int count = 0; 
  // 双重循环穷举 
  for (int i = 10; i < 100; i++) { 
  // j=i+1避免重复 
  from = Math.max(1000 / i, i + 1); 
  to = Math.min(10000 / i, 100); 
  for (int j = from; j < to; j++) { 
    i_val = i * j; 
    // 下面的这个代码,我个人并不知道为什么,汗颜 
    if (i_val % 100 == 0 || (i_val - i - j) % 9 != 0) { 
    continue; 
    } 
    count++; 
    ar_str1 = String.valueOf(i_val).split(""); 
    ar_str2 = (String.valueOf(i) + String.valueOf(j)).split(""); 
    Arrays.sort(ar_str1); 
    Arrays.sort(ar_str2); 
    if (Arrays.equals(ar_str1, ar_str2)) {// 排序后比较,为真则找到一组 
    sum++; 
    System.out.println("第" + sum + "组: " + i + "*" + j + "=" + i_val); 
    } 
  } 
  } 
  System.out.println("共找到" + sum + "组吸血鬼数"); 
  System.out.println(count); 





运行结果

第1组: 15*93=1395
第2组: 21*60=1260
第3组: 21*87=1827
第4组: 27*81=2187
第5组: 30*51=1530
第6组: 35*41=1435
第7组: 80*86=6880
共找到7组吸血鬼数
232





view plaincopy to clipboardprint?
// 下面的这个代码,我个人并不知道为什么,汗颜
if (i_val % 100 == 0 || (i_val - i - j) % 9 != 0) {

文章评论

中美印日四国程序员比较
中美印日四国程序员比较
程序员都该阅读的书
程序员都该阅读的书
每天工作4小时的程序员
每天工作4小时的程序员
总结2014中国互联网十大段子
总结2014中国互联网十大段子
为什么程序员都是夜猫子
为什么程序员都是夜猫子
旅行,写作,编程
旅行,写作,编程
如何成为一名黑客
如何成为一名黑客
程序员必看的十大电影
程序员必看的十大电影
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
程序员的鄙视链
程序员的鄙视链
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Java程序员必看电影
Java程序员必看电影
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
 程序员的样子
程序员的样子
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
代码女神横空出世
代码女神横空出世
鲜为人知的编程真相
鲜为人知的编程真相
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
10个调试和排错的小建议
10个调试和排错的小建议
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
我是如何打败拖延症的
我是如何打败拖延症的
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
漫画:程序员的工作
漫画:程序员的工作
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
编程语言是女人
编程语言是女人
那些争议最大的编程观点
那些争议最大的编程观点
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有