题目描述
输入行数n(n<=25),输出如样例所示的回形矩阵。
每个数字的场宽为2,输出每个数字后再空1格,以保证相邻的数字之间至少空1格(即:一位数前后各空一格,两位数仅在后面空一格)。
输入
只有一行一个正整数n。
输出
如样例所示的回形矩阵。
样例输入
4
样例输出
4 4 4 4 4 3 3 4 4 3 3 4 4 4 4 4
本题的解题思路:
本题生成的回形方阵可以利用二维数组进行存储。
将数据从外围向内逐层缩小写入数组。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,num,a[26][26];
cin>>n;
int k=n;
for(int i=1;i<=n;i++)//行数控制
{
for(int j=i;j<=n;j++)//控制列数 ,填入数字
{
a[i][j]=n;
a[j][i]=n;
a[j][n]=n;
a[n][j]=n;
}
n--;//n--将矩阵向中心收缩
}
//输出矩阵
for(int i=1;i<=k;i++)
{
for(int j=1;j<=k;j++)cout<<setw(2)<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}