1、螺旋矩阵
题目描述
输入n,试打印输出n*n的 螺旋矩阵(每个元素占4位场宽)。
输入
例如n=7,矩阵如下图:
输出
源码:
#include <iostream>
#include <iomanip>
using namespace std;//螺旋矩阵
int main()
{
int n;
cin >> n;
int arr[100][100] = {
0};
int cnt = 1;
int x = 0, y = 0;
int dx = 0, dy = 1;
while (cnt <= n*n){
arr[x][y] = cnt;
x += dx;
y += dy;
if (dy == 1 && (y >= n-1 || arr[x][y+1] != 0)){
//到右边界
dx = 1;
dy = 0; //转为向下
}
else if (dx == 1 && (x >= n-1 || arr[x+1][y] != 0)){
//到下边界
dx = 0;
dy = -1; //转为向左
}
else if (dy == -1 && (y <= 0 || arr[x][y-1]