Problem H: 蛇形填阵

来源:互联网 发布:淘宝网时尚女发型师装 编辑:程序博客网 时间:2024/04/28 02:21

Problem H: 蛇形填阵

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 1001  Solved: 467
[Submit][Status][Web Board]

Description

将1~n*n填入一个n*n的矩阵中,并要求成为蛇形。蛇形即是从右上角开始向下,向左,向上,向右,循环填入数字。

比如n=5时矩阵为:

13 14 15 16  1
12 23 24 17  2
11 22 25 18  3
10 21 20 19  4
  9  8   7   6   5

Input

输入有多行,每行为一个整数n(1<=n<=50),每组答案用空行隔开。

Output

输出一个n*n的矩阵,n行n列每个数字用一个空格隔开,不能有多余空格。

Sample Input

5

Sample Output

13 14 15 16 1
12 23 24 17 2
11 22 25 18 3
10 21 20 19 4
9 8 7 6 5
#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 1000int hang,lie,n,i,j,a[N][N];int main(){    int k = 0;    memset(a,0,sizeof(a));    while(scanf("%d",&n) != EOF)    {        if((k++) != 0)            printf("\n");        int shu=1,ZL=0,YL=0,SH=0,XH=0,v=0;        hang = 0;        lie = n-1;         while(shu <= n*n)        {            //down            while(hang < n-XH)            {                a[hang][lie]=shu;                hang++;                shu++;            }            hang--;            YL++;            lie--;              //left            while(lie >= ZL)            {                a[hang][lie]=shu;                lie--;                shu++;            }            lie++;            hang--;            XH++;              //up            while(hang >= SH)            {                a[hang][lie]=shu;                shu++;                hang--;             }            hang++;            ZL++;            lie++;            //right            while(lie < n-YL)            {                a[hang][lie]=shu;                shu++;                lie++;            }            lie--;            hang++;            SH++;            v++;          }         for(hang = 0; hang < n; hang++)        {            for(lie = 0; lie < n-1; lie++)            {                printf("%d ",a[hang][lie]);            }            printf("%d",a[hang][lie]);            printf("\n");        }    }    return 0;} /**************************************************************    Problem: 1184    User: 201401061013    Language: C    Result: Accepted    Time:16 ms    Memory:4652 kb****************************************************************/


0 0
原创粉丝点击