首页
社区
课程
招聘
hblac.cpp
发表于: 2010-10-20 15:59 4084

hblac.cpp

2010-10-20 15:59
4084
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <stdio.h>
 
bool use[17]={0};
int grid[5][5]={0};
int count=0;
 
bool suit(int row,int col,int value)
{
  int i;
 
  if(row==4)
  {
    if(grid[1][col]+grid[2][col]+grid[3][col]+value!=34)
      return false;
    if(col==1)
      if(grid[1][4]+grid[2][3]+grid[3][2]+value!=34)
        return false;
    int sum=0;
    for(i=1;i<col;i++)
      sum+=grid[row][i];
    sum+=value;
    if(sum>34) return false;  
  }
 
  if(col==4)
  {
    if(grid[row][1]+grid[row][2]+grid[row][3]+value!=34)
      return false;
    if(row==4)
      if(grid[1][1]+grid[2][2]+grid[3][3]+value!=34)
        return false;
    int sum=0;
    for(i=1;i<row;i++)
      sum+=grid[i][col];
    sum+=value;
    if(sum>34) return false;  
  }
   
  int sum=0;
  for(i=1;i<row;i++)
    sum+=grid[i][col];
  sum+=value;
  if(sum>34) return false;
 
  sum=0;
  for(i=1;i<col;i++)
    sum+=grid[row][i];
  sum+=value;
  if(sum>34) return false;
 
  return true;
   
}
 
int search(int row,int col)
{
  int i,j;
  if(row==4&&col==4)
  {
    for(i=1;i<=16;i++)
      if(!use[i]) break;
    if(suit(4,4,i))
    {
      count++;
      grid[4][4]=i;
      printf("Case %d\n",count);
      for(i=1;i<=4;i++)
        for(j=1;j<=4;j++)
          if(j==4) printf("%d\n",grid[i][j]);
          else printf("%d ",grid[i][j]);
      printf("\n");
    }  
    return 0;
  }
 
  for(i=1;i<=16;i++)
    if(!use[i])
    {
      if(suit(row,col,i))
      {
        use[i]=1;
        grid[row][col]=i;
        if(col==4) search(row+1,1);
        else search(row,col+1);
        use[i]=0;
        grid[row][col]=0;
      }
    }
  return 0;
}
 
int main()
{
  search(1,1);
  return 0;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册