转载请注明出处: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