题目描述
给定一个正整数 n,请你输出一个 n 行 n 列的矩阵(方阵),
其中第 i 行第 j 列的元素值为 i 与 j 的差的绝对值(行号和列号均从 1 开始)。
即:
aij=∣i−j∣
输入格式
输入一行,包含一个正整数 n。
输出格式
输出 n 行,每行 n 个整数,表示所求的矩阵。
同一行的相邻整数之间用一个空格隔开。
样例输入
4
样例输出
0 1 2 3
1 0 1 2
2 1 0 1
3 2 1 0
样例解释
n=4 时,矩阵大小为 4×4:
| i\j |
1 |
2 |
3 |
4 |
| 1 |
∣1−1∣=0 |
∣1−2∣=1 |
∣1−3∣=2 |
∣1−4∣=3 |
| 2 |
∣2−1∣=1 |
∣2−2∣=0 |
∣2−3∣=1 |
∣2−4∣=2 |
| 3 |
∣3−1∣=2 |
∣3−2∣=1 |
∣3−3∣=0 |
∣3−4∣=1 |
| 4 |
∣4−1∣=3 |
∣4−2∣=2 |
∣4−3∣=1 |
∣4−4∣=0 |
数据范围与约定
对于 100% 的数据,1≤n≤50。
提示
- 主对角线(i=j)上的元素全部为 0,且矩阵关于主对角线对称。
- 不需要使用数组存储,直接在外层循环中逐行、在内层循环中逐列计算并输出即可。
- i 和 j 的差的绝对值可以通过
if 条件判断来求,也可以使用 C++ 的 abs 函数(需包含 <cmath> 头文件)。