蛇形数组

转载请注明出处:http://www.cnblogs.com/zhishoumuguinian/p/8464346.html

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int a[110][110];
 8     int n;
 9     cin>> n;
10     int k=1,t1=n-1, L1=n-1, t2=1,L2=0;
11     int i=0, j=0;
12     int m=n*n;
13     while(1)
14     {
15         if(k>=m) break;
16         while(j<L1) a[i][j++]=k++;  L1--;
17 
18         if(k>=m) break;
19         while(i<t1) a[i++][j]=k++;  t1--;
20 
21         if(k>=m) break;
22         while(j>L2) a[i][j--]=k++;  L2++;
23 
24         if(k>=m) break;
25         while(i>t2) a[i--][j]=k++;  t2++;
26     }
27     a[i][j]=k;
28 
29     for(int i=0; i<n; i++)
30     {
31         for(int j=n-1; j>=0; j--)
32         {
33             printf("%2d ", a[j][i]);
34         }
35         cout<<endl;
36     }
37 }

描述

n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4

输入

直接输入方陈的维数,即n的值。(n<=100)

输出

输出结果是蛇形方陈。

样例输入

3

样例输出

7 8 1
6 9 2
5 4 3
原文地址:https://www.cnblogs.com/zhishoumuguinian/p/8464346.html