输出回形数组
时间限制: 1 Sec 内存限制: 128 MB
提交: 54 解决: 28
题目描述
输入正整数N(N≤9)按照回形输出整数1~N2
按照题目要求,数组中的最大值是81,因此按照%3d格式输出每个元素的值即可。
输入
1
输出
1
输入
5
输出
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
样例输入
3
样例输出
1 2 3
8 9 4
7 6 5
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int n,a[100][100];
int main()
{
cin>>n;
int index=1,i=0,j=0;
while(index<=n*n)
{
while(a[i][j]==0&&j<n)
{
a[i][j++]=index++;
}j--;i++;
while(a[i][j]==0&&i<n)
{
a[i++][j]=index++;
}i--;j--;
while(a[i][j]==0&&j>=0)
{
a[i][j--]=index++;
}j++;i--;
while(a[i][j]==0&&i>=0)
{
a[i--][j]=index++;
}i++;j++;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%3d",a[i][j]);
}
cout<<endl;
}
}