Java - 吸血鬼数字

原创 2015年07月11日 10:40:42

吸血鬼数字是指位数是偶数的数字, 由一对相乘的数字得到, 而且每个数字包含乘积一半位数的数字.
如:
1092: 12*91
1207: 17*71
1250: 25*50
1260: 21*60
1275: 17*75
1278: 18*71
1325: 25*53


找出4位数的所有吸血鬼数字.

//: Main.java

import java.util.ArrayList;

/**
 * 吸血鬼数字
 */
class Main {

    public static boolean vampire(int num) {
        String snum = Integer.toString(num);
        char[] ac = snum.toCharArray();

        // 拼接两个数
        ArrayList<String> as = new ArrayList<String>();
        for (int i=0; i<ac.length; ++i) {
            for (int j=0; j<ac.length; ++j) {
                if (j == i) continue;
                String tmp = ""+ac[i] + ac[j];
                as.add(tmp);
            }
        }

        // 转换数字
        int[] ai = new int[as.size()];
        for (int i=0; i<as.size(); ++i) {
            ai[i] = Integer.valueOf(as.get(i));
        }

        // 验证吸血鬼数字
        for (int i=0; i<as.size(); ++i) {
            for (int j=0; j<as.size(); ++j) {
                if (j == i) continue;
                if (ai[i] * ai[j] == num) {
                    System.out.println(num + ": " + ai[i] + "*" + ai[j]);
                    return true;
                }
            }
        }
        return false;
    }


    public static void main(String[] args) {
        for (int i=1000; i<10000; ++i) {
            vampire(i);
        }
    }
}
/**
 * Output:
 1092: 12*91
 1207: 17*71
 1250: 25*50
 1260: 21*60
 1275: 17*75
 1278: 18*71
 1325: 25*53
 ...
 *///:~

娱乐

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java编程——吸血鬼数字(四位)

java编程——吸血鬼数字(四位)

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

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

JAVA实现的吸血鬼数字算法,高效率版本(已有网友给出算法说明)

 今日整理了吸血鬼数字的算法,自己调整了一部分,从网上又看到一个,不过没看懂其算法,他对性能的提高在10倍哦 先看我整理后的代码import java.util.Arrays;/** * 吸血鬼数字,...

java 取四位数吸血鬼数

for (int i = 10; i < 100; i++) { for (int j = i; j < 100; j++) { int num = i * j; if (num...

JAVA求吸血鬼数字

  • 2013年07月01日 13:33
  • 2KB
  • 下载

java编程思想学习笔记(4)--吸血鬼数字

今天看Java编程思想第四章时看到吸血鬼数字这道题,自己写了一下,一开始用的是顺着题目的思路想下去的,把一个四位数分解四个个位数,然后对这四个数进行全排列,然后对每一个全排列的结果进行计算,判断是否等...

【java】吸血鬼数字

题目:Java编程思想 p75 练习10 import java.util.Arrays; import static java.lang.Character.getNumericValue; ...

JAVA实现的吸血鬼数字算法,高效率版本(已有网友给出算法说明)

今日整理了吸血鬼数字的算法,自己调整了一部分,从网上又看到一个,不过没看懂其算法,他对性能的提高在10倍哦   先看我整理后的代码 [Java]view plaincopy ...

Think in java中关于吸血鬼数字问题的算法

问题描述:吸血鬼数字是指个数为偶数位的数字,它可以拆分成两个数字的乘积,这两个数字各包含乘积的一半位的数字,数字的顺序任意.(以两个00结尾的数字不是吸血鬼数字) 如 1260 = 21 * 60...

Java 吸血鬼数字

很惭愧(其实没什么惭愧,水平就这样),搞了半晌才写出来了一个Java 求四位吸血鬼数字的方法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java - 吸血鬼数字
举报原因:
原因补充:

(最多只允许输入30个字)