码迷,mamicode.com
首页 > 其他好文 > 详细

本部校赛 蛇形填数(二)problen1338

时间:2015-05-06 01:17:56      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

Description

 

萌萌哒cy学姐参加去年的新生杯的时候,蛇形矩阵那题被她分分钟秒掉,于是她决定出一个更难的题目,她要求矩阵里的每个数都是质数,当然,蛇形的规则也略有变化

如2*3矩阵:   

2 7 11

3 5 13

再如3*4的矩阵

2 13 17 37

3 11 19 31

5 7 23 29

 


 

Input

 

第一行为一个正整数T,表示数据的组数,接下来T行,每行两个正整数n,m,表示矩阵有nm

 

Output

 

对于每一个输入输出n行,每行m个数,表示这个矩阵,输出内容见题目描述,每个数输出宽度为6

 

 

Sample Input

 

2
2 3
3 4

 

Sample Output

 

     2     7    11
     3     5    13
     2    13    17    37
     3    11    19    31
     5     7    23    29

 

Hint


1<=n,m<=100

下面的代码老是超时啊啊啊啊啊啊啊!!

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4  
 5 int zhi(int num)
 6 {
 7     int i,j,h=0;
 8     static int k=2;
 9     for(i=k;;i++)
10     {
11         int k=sqrt(i)+1;
12         for(j=2;j<=k;j++)
13         {
14             if(i%j==0)
15             break;
16         }
17         if(i==3)
18            h++;
19           if(h==num)
20                 return i;
21         if(j<=k)
22             continue;
23 
24         h++;
25         if(h==num)
26         {
27             k=i+1;
28             return i;
29         }
30     }
31 }
32 int main()
33 {
34         
35         int a[20][20];
36         int m,n,x,y;
37         int T;
38         scanf("%d",&T);
39         while(T--)
40         {
41         scanf("%d%d",&m,&n);
42         {memset(a,0,sizeof(a));
43         int count=1;
44         a[x=0][y=0]=2;
45         while(1)
46         {
47             while(!a[x+1][y]&&x+1<m)
48                 a[++x][y]=zhi(++count);
49             if(!a[x][y+1]&&y+1<n)
50                 a[x][++y]=zhi(++count);
51             while(!a[x-1][y]&&x-1>=0)
52                 a[--x][y]=zhi(++count);
53             if(!a[x][y-1]&&y-1>=0)    
54                 a[x][--y]=zhi(++count);
55             if(count==m*n)
56             break;
57         }
58         for(x=0;x<m;x++)
59             {
60                 for(y=0;y<n;y++)
61                     printf("%3d",a[x][y]);
62                 printf("\n");
63             }
64         }
65         }
66     
67 }

 

本部校赛 蛇形填数(二)problen1338

标签:

原文地址:http://www.cnblogs.com/a1225234/p/4480693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!