有时,将数据的比较转换成字符串比较会更加直观

有时候,将数据的比较转换成字符串比较会更加直观
有时候,将数据的比较转换成字符串比较会更加直观。

请大家看下面的例子--实现吸血鬼数



所谓“吸血鬼数字”就是指位数为偶数的数字),可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数字。

package my.example.numbers;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 
 * @author Eric
 * 
 */
public class VampireNumberExample1 {
	public static void main(String[] args) {

		/**
		 * 为了能够是去除相同的吸血鬼数。 比如: 21 x 60 = 1260 = 60 x 21
		 * 
		 */
		List<Integer> uniqueVampireNumber = new ArrayList<Integer>();

		for (int i = 10; i <= 99; i++) {
			for (int j = 10; j <= 99; j++) {
				int sum = i * j;
				if (sum >= 1000 && sum <= 9999) {
					String[] str = String.valueOf(sum).split("");
					Arrays.sort(str); // 按照字符的升序排列
					String[] str1 = (String.valueOf(i) + String.valueOf(j))
							.split("");
					Arrays.sort(str1); // 对两个Arrays进行比较
					if (Arrays.equals(str, str1)) {
						if (!uniqueVampireNumber.contains(sum)) {
							uniqueVampireNumber.add(sum);
							System.out.printf("第%d组:%d + %d = %d\n",
									uniqueVampireNumber.size(), i, j, 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

转载请注明:http://www.wangmengjun.com/showArticleDetail.do?articleId=40
1 楼 tjj006 昨天  
这个东东没神马用处吧……
2 楼 healer_kx 昨天  
是的,以前我们玩GWBasic的时候也是这么干的。