同行列对角线的格子

220 阅读1分钟

题目描述

如图:

image.png

输入格式

一行,三个自然数N,i,j,相邻两个数之间用单个空格隔开。1 <= N <= 10。

输出格式

四行:
第一行:从左到右输出同一行格子位置;
第二行:从上到下输出同一列格子位置;
第三行:从左上到右下输出同一对角线格子位置;
第四行:从左下到右上输出同一对角线格子位置。
其中每个格子位置用如下格式输出:(x,y),x为行号,y为列号,采用英文标点,中间无空格。
相邻两个格子位置之间用单个空格隔开。

样例输入

4 2 3

样例输出

(2,1) (2,2) (2,3) (2,4)
(1,3) (2,3) (3,3) (4,3)
(1,2) (2,3) (3,4)
(4,1) (3,2) (2,3) (1,4)

参考代码

注意对角线的规律

n,i,j = [ int(i) for i in input().split()]


for b in range(1,n+1):
    print("(%d,%d)"%(i,b),end=" ")
print()

for b in range(1,n+1):
    print("(%d,%d)"%(b,j),end=" ")
print()

# 主对角线的规律是两个坐标差相等
for a in range(1,n+1):
    for b in range(1,n+1):
        if(b-a == j-i):
            print("(%d,%d)"%(a,b),end=" ")
print()


# 副对角线的规律是两个坐标和相等
for a in range(1,n+1):
    for b in range(1,n+1):
        if(b+a == j+i):
            print("(%d,%d)"%(b,a),end=" ")
print()