1. 程式人生 > >Java程式設計思想:吸血鬼數字

Java程式設計思想:吸血鬼數字

吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到,而這對數字各包含乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排序。以兩個0結尾的數字是不允許的<百度百科>
例如:

15*93=1395
21*60=1260

具體實現如下(只討論四位數字):

import java.util.Arrays;

public class VampireNumber {
    /*
     * 吸血鬼數字:
     * 吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到,
     * 而這對數字各包含乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排序。
     * 以兩個0結尾的數字是不允許的
     * 
     * 要求:找出所有的四位吸血鬼數字
     * 
     */
public static void main(String[] args) { for(int i = 10; i < 100; i++){ for(int j = i+1; j < 100; j++){ int temp = i*j; if(temp%100 == 0) // 不能是以兩個0結尾的數字 continue; String str1 = temp+""; // 結果 String str2 = i + ""
+ j; // 乘數 if(str1.length() != str2.length()) continue; char[] product = str1.toCharArray(); char[] mul = str2.toCharArray(); Arrays.sort(product); Arrays.sort(mul); boolean b = true; for
(int k = 0; k < product.length; k++){ if(product[k] != mul[k]){ b = false; break; } } if(b){ System.out.println(i + "*" + j + "=" + temp); } } } } }