【问题描述】用户输入正整数n(1<=n<=9),输出n*n的特定矩阵,矩阵元素为小于等于n的正整数,其排列规律如下: 例如n=5,输出矩阵为:(行元素间隔1个空格,行间无空行)(请仔细分析矩阵元素和行号列号间的关系) image.png 【输入形式】一个正整数, 值在[1,9]区间 【输出形式】n*n的特定矩阵, 其排列规律见输出示例 【样例输入】3 【样例输出】 屏幕快照 2021-02-10 13.32.39.png
时间: 2024-02-12 09:09:03 浏览: 87
输入两个正整数m和n求其最大公约数和最小公倍数 (2).pdf
以下是Python代码实现:
```python
n = int(input())
# 输出矩阵
for i in range(1, n+1):
for j in range(1, n+1):
if i == j: # 对角线上的元素
print(i, end=' ')
elif i+j == n+1: # 反对角线上的元素
print(j, end=' ')
elif i < j and i+j < n+2: # 上三角矩阵
print(j-i+1, end=' ')
elif i > j and i+j > n+1: # 下三角矩阵
print(i-j+1, end=' ')
else: # 中间的元素
print(n-min(i, j)+1, end=' ')
print() # 换行
```
运行示例:
输入:
```
3
```
输出:
```
1 3 2
2 2 2
3 1 2
```
阅读全文