蛇形填数
描述
在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
#include <iostream> #include <iomanip> using namespace std; const int size = 101; void matrix(int arr[size][size],int n) { int m; int k = 0; if(n % 2 == 0) m = n / 2; else m = n /2 + 1; for(int i = 0;i <m; i++) { for(int j = i;j < n - i; j ++) { k ++; arr[j][n - i - 1] = k; } for(int j = n - i - 2; j>= i; j--) { k ++; arr[n - i - 1][j] = k; } for(int j = n - i - 2; j >=i; j--) { k ++; arr[j][i] = k; } for(int j = i + 1; j< n - i -1; j++) { k ++; arr[i][j] = k; } } } int main() { int a[101][101]; int value; cin>>value; matrix(a,value); for(int i = 0; i < value; i++) { for(int j = 0; j < value; j ++) { cout<<a[i][j]<<" "; } cout<<endl; } cout<<endl; return 0; }