其他分享
首页 > 其他分享> > P5731 【深基5.习6】蛇形方阵

P5731 【深基5.习6】蛇形方阵

作者:互联网

题目描述

给出一个不大于 9 的正整数 n,输出 n×n 的蛇形方阵。

从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 3 个字符,前面使用空格补齐。

输入格式

输出格式

输入输出样例

输入 输出
4 1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

解答

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a[n][n];
	memset(a,0,sizeof(a));
	int quan=0;
	int x=0,y=0;
	int num=1;
	while(1)
	{
		if(a[x][y]>0)
		{
			quan++;
			x=quan;
			y=quan;
		}
		else
		{
			int nn=n-quan-1;
			
			if(nn<1) break;

			a[x][y]=num;
			num++;
			
			if(x==quan && y<nn)
				y++;
			else if(x<nn && y==nn)
				x++;
			else if(x==nn && y<=nn && y>quan)
				y--;
			else if(x<=nn && x>quan && y==quan)
				x--;
		}
	}
	
	if(n==1)
		cout<<setw(3)<<setfill(' ')<<1;
	else
	{
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
				cout<<setw(3)<<setfill(' ')<<a[i][j];
			cout<<endl;
		}
	}
	return 0;
} 

标签:输出,P5731,int,深基,else,--,quan,蛇形
来源: https://www.cnblogs.com/codespark/p/15354565.html