灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2673回复:0

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

楼主#
更多 发布于:2012-09-08 09:34

//
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
}


喜欢0 评分0
游客

返回顶部