吸血鬼数字(无聊看JAVA的一个例子 好玩而已)

2014-11-24 03:29:17 · 作者: · 浏览: 1
//
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[i];
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
}


摘自 SeanYeung的博客