標籤:mystra java 吸血鬼數字
吸血鬼數字是指位元是偶數的數字, 由一對相乘的數字得到, 而且每個數字包含乘積一半位元的數字.
如:
1092: 12*91
1207: 17*71
1250: 25*50
1260: 21*60
1275: 17*75
1278: 18*71
1325: 25*53
找出4位元的所有吸血鬼數字.
//: Main.javaimport 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 - 吸血鬼數字