本文主要是介绍acwing——753. 平方矩阵 I,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
753. 平方矩阵 I
输入整数N,输出一个N阶的回字形二维数组。
数组的最外层为1,次外层为2,以此类推。
输入格式
输入包含多行,每行包含一个整数N。
当输入行为N=0时,表示输入结束,且该行无需作任何处理。
输出格式
对于每个输入整数N,输出一个满足要求的N阶二维数组。
每个数组占N行,每行包含N个用空格隔开的整数。
每个数组输出完毕后,输出一个空行。
数据范围
0≤N≤1000≤N≤100
输入样例:
1
2
3
4
5
0
输出样例:
11 1
1 11 1 1
1 2 1
1 1 11 1 1 1
1 2 2 1
1 2 2 1
1 1 1 11 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
解题思路1:
对称着写下去。
程序代码1:
#include<iostream>
using namespace std;
int main()
{int n, a[110][110];while(cin >> n, n){for (int i=0;i<n;i++){for (int j=i;j<n-i;j++){a[j][i] = a[i][j] = i + 1;a[j][n - i - 1] = a[n - i - 1][j] = i + 1;}}for (int i=0;i<n;i++){for (int j=0;j<n;j++)cout <<a[i][j]<<' ';cout<<endl;}cout<<endl;}return 0;
}
解题思路2:
观察数和坐标的关系(大佬思路)
程序代码2:
#include<iostream>
using namespace std;
int main()
{int n;while(cin>>n,n){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;
}
这篇关于acwing——753. 平方矩阵 I的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!