“吸血鬼数字”

今日在书上看到了这个题目觉得挺有意思,算法很巧妙,拿来和大家分享。
  1. public class Vampire { 
  2. public static void main(String[] arg){ 
  3.   String[] ar_str1,ar_str2; 
  4.   int sum=0
  5.   //双重循环穷举 
  6.   for(int i=10;i <100;i++){ 
  7.   //j=i+1避免重复 
  8.   for(int j=i+1;j <100;j++){ 
  9.     int i_val=i*j; 
  10.     if(i_val <1000 ¦ ¦i_val>9999)continue;//积小于1000或大于9999排除,继续下一轮环 
  11.     ar_str1=String.valueOf(i_val).split(""); 
  12.     ar_str2=(String.valueOf(i)+String.valueOf(j)).split(""); 
  13.     java.util.Arrays.sort(ar_str1); 
  14.     java.util.Arrays.sort(ar_str2); 
  15.     if(java.util.Arrays.equals(ar_str1, ar_str2)){//排序后比较,为真则找到一组 
  16.     sum++; 
  17.     System.out.println("第"+sum+"组: "+i+"*"+j+"="+i_val); 
  18.     } 
  19.   } 
  20.   } 
  21.   System.out.println("共找到"+sum+"组吸血鬼数"); 
  22. 运行结果: 
  23. C:/work>java  Vampire 
  24. 1组: 15*93=1395 
  25. 2组: 21*60=1260 
  26. 3组: 21*87=1827 
  27. 4组: 27*81=2187 
  28. 5组: 30*51=1530 
  29. 6组: 35*41=1435 
  30. 7组: 80*86=6880 
  31. 共找到7组吸血鬼数 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值