非常羞愧(事实上没什么羞愧。水平就这样)。搞了半晌才写出来了一个Java 版求四位吸血鬼数字的方法

吸血鬼数字是指位数为偶数的数字。能够由一对数字相乘而得到。而这对数字各包括乘积的一半位数的数字,当中从最初的数字中选取的数字能够随意排序。

以两个0结尾的数字是不同意的,比如,下列数字都是“吸血鬼”数字:

1260 = 21 * 60  1827 = 21 * 87  2187 = 27 * 81

int len = 4;
// 求出四位值得范围
int max = (int) (Math.pow(10, len) -1);
int min = (int) (Math.pow(10, len-1));
for (int num = min; num <= max; num++) {
// 过滤掉诸如60*50=3000这种数
if (num % 100 == 0) {
continue;
} // 主要思路,分解四位数字。拿出来排列组合。然后依据条件a*b=c来筛选,费劲心思也就做到这程度了,真™想回家种地
List<String> list = Arrays.asList(String.valueOf(num).split(""));
List<String> ss = new ArrayList<String>(); for (int i = 1; i < list.size(); i++) {
for (int j = 1; j < list.size(); j++) {
if (j == i) {
continue;
}
List<String> halfs = new ArrayList<String>();
halfs.addAll(list); halfs.remove(i);
halfs.remove(j - 1); String a = list.get(i) + list.get(j);
if (!ss.contains(a)) {
for (int k = 1; k < halfs.size(); k++) {
String b = halfs.get(k) + halfs.get(halfs.size() - k);
if (!ss.contains(b)) {
ss.add(b);
} int i1 = Integer.parseInt(a);
int i2 = Integer.parseInt(b);
if (i1 * i2 == num) {
System.out.print(a + "、" + b + "=" + num + ",");
} }
}
}
}
}

得出结论例如以下:

21、60=1260,15、93=1395。41、35=1435,51、30=1530,21、87=1827。27、81=2187,86、80=6880,86、80=6880,

还多出了一组同样的数据。也是醉了。真灰心。

当然了,悻悻然的做出了结果,也算不负于王二(我,已经无法用第一人称了)的智商。

为了保持一颗上进的心。我还是看看高手们怎么完毕的。

參见AVA实现的吸血鬼数字算法,高效率版本号(已有网友给出算法说明)。说实话,看了几遍也没有看懂,真扫兴,你要是看懂了,能够教一教王二这个榆木疙瘩。


相关文章

王二语录

the best things in life,they are free,but if you wanna cry,cry on my shoulder.──《cry on my shoulder》

本文出自:【qing_gee的博客

Java 吸血鬼数字的更多相关文章

  1. Java 找出四位数的全部吸血鬼数字 基础代码实例

    /**  * 找出四位数的全部吸血鬼数字  * 吸血鬼数字是指位数为偶数的数字,能够由一对数字相乘而得到,而这对数字各包括乘积的一半位数的数字,当中从最初的数字中选取的数字能够随意排序.  * 以两个 ...

  2. Java 找出四位数的所有吸血鬼数字 基础代码实例

    /**  * 找出四位数的所有吸血鬼数字  * 吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序.  * 以两个 ...

  3. 《Thinking in Java》习题——吸血鬼数字

    最近在看<Java编程思想>,这本书非常棒,不愧是Java程序员的圣经.看到第四章,后面有道题目很有意思,于是就自己做了做.

  4. 《java编程思想》读后笔记:二,吸血鬼数字

    书本p75中一道读后练习思考题,题目如下: 吸血鬼数字是指位数为偶数的数字,可以有一对数字相乘得到,而这对数字各包含成绩的一半位数的数字,其中从最初的数字中选取的数字可以任意排序.一两个0结尾的数字是 ...

  5. 吸血鬼数字算法参考 -- javascript版本

    // 吸血鬼数字 java编程思想 第四章 75页 练习10 for (var i = 10; i <= 99; i++) { for (var j = i + 1; j < 99; j+ ...

  6. JAVA_吸血鬼数字 多种方法实现

    package test4; import java.util.Arrays; /** * 从TIJ中第4章的练习10看到“吸血鬼数字”,以下几种方法实现以及执行时间对比 * 找出四位数的所有吸血鬼数 ...

  7. 原码,反码,补码,及Java中数字表示方法

    原码:原码是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 如:如果是八位二进制1即用00000001表示,-1即用10000001表示. 反码:正数的反码就是其本身,负数的反码是在其 ...

  8. java 将数字转成成16进制

      java 将数字转成成16进制 CreationTime--2018年6月11日17点11分 Author:Marydon 1.前提 数字必须是byte类型,即[-128,127] 2.代码实现 ...

  9. 实验三 Java猜数字游戏开发

    课程:Java实验   班级:201352     姓名:程涵  学号:20135210 成绩:             指导教师:娄佳鹏   实验日期:15.06.03 实验密级:         ...

随机推荐

  1. bzoj 2460 拟阵+判线性相关

    /************************************************************** Problem: 2460 User: idy002 Language: ...

  2. Codeforces Round #222 (Div. 1) A. Maze dfs

    A. Maze 题目连接: http://codeforces.com/contest/377/problem/A Description Pavel loves grid mazes. A grid ...

  3. 记一次完整的pc前端整站开发

    我所做的项目是一个线上的旅游平台,当然不是大家耳熟能详的那些旅游平台了,项目刚开始也没有必要去评价它的好坏,在这里我就不多说了~这是线上地址有兴趣的同学可以去看看(www.bookingctrip.c ...

  4. ASP.NET 构建高性能网站 第4篇

    部署优化 我们都知道,不同的部署方式对站点的性能是有影响的,可能有些朋友已经知道了这点,不管怎样,我们这里还是详细系统的讲述一下这个问题,熟悉的朋友权当回顾J. Release方式编译项目 如果我们的 ...

  5. windows下tomcat的安装配置

    一.下载相应的JDK以及tomcat的版本 JDK:jdk-8u131-windows-x64 tomcat:apache-tomcat-8.5.23-windows-x64.zip 二.JDK的安装 ...

  6. 通过 ssh 登录到手机 Termux

    通过ssh登录到手机 Termux 测试环境 电脑: macOS Mojave 手机: Huawei Mate10Pro Termux是Android上的一个非常强大的终端模拟器. 强大之处在于支持使 ...

  7. PHP-系统流程

    我们来系统的了解下ThinkPHP框架开发的应用的标准执行流程: 用户URL请求 调用应用入口文件(通常是网站的index.php) 载入框架入口文件(ThinkPHP.php) 记录初始运行时间和内 ...

  8. Unity3d Http Get请求

    新浪微博的OpenAPI登录 public static IEnumerator LoginRequest(string userid, string passwd, Action<string ...

  9. iOS中安全结束 子线程 的方法

    一个典型的结束子线程的方法:   用 isFinished 检测子线程是否被完全kill掉 -(IBAction)btnBack:(id)sender { //释放内存 仅仅remove 并不会触发内 ...

  10. JSONObject以及json(转)

    一.JAR包简介      要使程序 可以运行 必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:      1.commons-lang.jar      2.commons- ...