Tsinsen-A1101格子问题(考查格子行列斜的规律)

来源:互联网 发布:软件生命周期管理 编辑:程序博客网 时间:2024/04/20 03:37
(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)

(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;}



0 0
原创粉丝点击