吸血鬼数字(无聊看JAVA的一个例子 好玩而已)
3200 点击·0 回帖
![]() | ![]() | |
![]() | // 02 // Think in java 03 // FindData.java 04 // 2012-1-31 11:56 05 06 package com.yangjie.finddata; 07 08 public class FindData { 09 10 boolean AnalyzeData(int data) { 11 if (data < 1000 || data > 9999) 12 return false; 13 14 int v0, v1, v2, v3; 15 16 v0 = data % 10; 17 v1 = (data / 10) % 10; 18 v2 = (data / 100) % 10; 19 v3 = (data / 1000) % 10; 20 21 int [] arr = new int [4]; 22 arr[0] = v0; 23 arr[1] = v1; 24 arr[2] = v2; 25 arr[3] = v3; 26 27 for (int i = 0; i < 4; i ++) { 28 29 int temp1 = arr; 30 for (int j = 0; j < 4; j ++) { 31 32 if (i != j) { 33 34 int temp2 = arr[j]; 35 int [] temp = new int [2]; 36 int n = 0; 37 for (int k = 0; k < 4; k ++) { 38 39 if (k != i ;; k != j) { 40 41 temp[n] = arr[k]; 42 n ++; 43 } 44 } 45 46 int sum = (temp1 * 10 + temp2) * (temp[0] * 10 + temp[1]); 47 if (sum == data) { 48 49 System.out.println(data + "=" + (temp1 * 10 + temp2) + " * " + (temp[0] * 10 + temp[1])); 50 return true; 51 } 52 53 sum = (temp1 * 10 + temp2) * (temp[0] + temp[1] * 10); 54 if (sum == data) { 55 56 System.out.println(data + "=" + (temp1 * 10 + temp2) + " * " + (temp[0] + temp[1] * 10)); 57 return true; 58 } 59 } 60 } 61 } 62 63 return false; 64 } 65 66 public static void main(String[] args) { 67 68 FindData fd = new FindData(); 69 for (int i = 1000; i < 9999; i ++) { 70 71 fd.AnalyzeData(i); 72 } 73 } 74 } | |
![]() | ![]() |