T1:填幻方

NOIP2015提高组复赛Day1Day2详解

这道题目非常水,直接按照题目里说的做就行了

其实机智的你们可以直接跳过题面直接开始做

 1 #include <cstdio>
 2 #include <cstring>
 3 int a[100][100];
 4 int main()
 5 {
 6     int n;
 7     memset(a,0,sizeof(a));
 8     scanf("%d",&n);
 9     int num=1;
10     int i,j;
11     i=1; j=n/2+1;
12     a[i][j]=1;
13     while (num<=n*n)
14     {
15         num++;
16         i--; j++;
17         if (i<1 && j<=n)
18         {
19             i=n;
20         }
21         else if (i<1 && j>n)
22         {
23             i++; i++; j--;
24         }
25         else if (j>n)
26         {
27             j=1;
28         }
29         else if (a[i][j]!=0)
30         {
31             i++;
32             j--;
33             i++;
34         }
35         a[i][j]=num;
36         /*for (int i=1; i<=n; i++)
37         {
38             for (int j=1; j<=n; j++)
39                 printf("%d ",a[i][j]);
40             printf("\n");
41         }*/
42     }
43     for (i=1;i<=n; i++)
44     {
45         for (j=1; j<=n-1; j++)
46             printf("%d ",a[i][j]);
47         printf("%d\n",a[i][n]);
48     }
49 }
View Code

相关文章: