输入整数 N,输出一个 N 阶的回字形二维数组。
数组的最外层为 1,次外层为 2,以此类推。
输入格式
输入包含多行,每行包含一个整数 N。
当输入行为 N=0 时,表示输入结束,且该行无需作任何处理。
输出格式
对于每个输入整数 N,输出一个满足要求的 N阶二维数组。
每个数组占 N行,每行包含 N个用空格隔开的整数。
每个数组输出完毕后,输出一个空行。
数据范围
0≤N≤1000
输入样例:
1
2
3
4
5
0
输出样例
1
1 1
1 1
1 1 1
1 2 1
1 1 1
1 1 1 1
1 2 2 1
1 2 2 1
1 1 1 1
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
分析:回字型数组
写一个 二层循环进行枚举,对于每一个元素都是输出级,i,j,n-i+1,n-j+1 这四个数中最小的一个数(图中笔误)
因此代码如下:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int n;
while(cin>>n&&n!=0)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<min(min(i,j),min(n-i+1,n-j+1))<<" ";
}
cout<<endl;
}
cout<<endl;
}
return 0;
}