吸血鬼数字算法

吸血鬼数字介绍

吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下列数字都是“吸血鬼”数字:

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

查找四位的吸血鬼数字算法如下:

package com.test.lhg;

import java.util.Arrays;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int n = findXuXueGuiShu();
		System.out.println("共找到"+n+"组吸血鬼数");

	}
	
	/**
	 * 查找4位的吸血鬼数
	 * @return
	 */
	public static int findXuXueGuiShu() {
		int sum = 0;
		for (int i = 10; i < 100; i++) {
			for (int j = i+1; j < 100; j++) {
				int product = i * j;
				if (product<1000 || product>10000 || product %100==0) {
					continue;
				}
				String strProduct = ""+product;
				String gene = ""+i+j;
				char[] arrProduct = strProduct.toCharArray();
				char[] arrgene = gene.toCharArray();
				Arrays.sort(arrProduct);
				Arrays.sort(arrgene);
				if (Arrays.equals(arrProduct, arrgene)) {
					sum ++;
					System.out.println("第"+sum+"组:"+i+"*"+j+"="+product);
				}
			}
		}
		return sum;
	}

}
/*
 	第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组吸血鬼数
 * /





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值