(1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9)
(2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9)
(3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9)
(4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9)
(5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9)
(6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9)
(7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9)
(8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9)
(2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9)
(3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9)
(4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9)
(5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9)
(6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9)
(7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9)
(8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9)
(9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9)
用上面做个例子, 像这样对称的矩阵,行列规律没什么好说的。
说斜的:比如左上到右下(1, 1)、(2, 2)、(3, 3)、(4, 4)、(5, 5)、(6, 6)、(7, 7)、(8, 8)、(9, 9)、
再如:(1,2)、(2, 3)、(3, 4)、(4,5)、(5, 6)、(6, 7)、(7, 8)、(8, 9)、
再如:(1, 7)、(2, 8)、(3, 9)、
可以观察出规律:自左上到右下:同一条斜线上的坐标(x-y)或(y-x)的值相同: x1-y1 = x2-y2;
同理,
观察从左下到右上, 也可以观察出规律:自左下到右上:同一条斜线上的坐标(x+Y)的值相同: x1+y1 = x2+y2;
根据上面找到的这个规律就好写了:
#include<iostream>
using namespace std;
int main() {
int N, r, c;
cin >> N >> r >> c;
for(int i = 1; i <= N; i++)
cout << "("<< r << "," << i << ")" ;
cout << endl;
for(int i = 1; i <= N; i++)
cout << "("<< i << "," << c << ")" ;
cout << endl;
for(int i = 1; i <= N; i++)
if(r-c+i >=1 && r-c+i <= N)
cout << "("<< r-c+i << "," << i << ")" ;
cout << endl;
for(int i = 1; i <= N; i++)
if(r+c-i >=1 && r+c-i <= N)
cout << "("<< r+c-i << "," << i << ")" ;
return 0;
}