Java程式設計思想:吸血鬼數字
阿新 • • 發佈:2018-12-25
吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到,而這對數字各包含乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排序。以兩個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);
}
}
}
}
}