fans喜欢玩折纸游戏。整张纸被分成m*m个格子,即构成一个方阵,每个格子里面都写了一个正整数。游戏分两步:首先左右对折,如果对应的格子的数字都相同,那么进行下一步操作;否则停止游戏,此时游戏的结果是“no”。然后上下对折,如果对应的格子的数字相同,那么游戏的结果是“yes”;否则游戏的结果是“no”。 输入 第一个数为方阵的个数n,接着就是每个方阵的数据,每个方阵的第一行为该方阵的阶m,后跟m*m个元素。 输出 如果对应的格子的数字相同,那么游戏的结果是“yes”;否则游戏的结果是“no”。
时间: 2024-03-08 07:46:54 浏览: 41
Java用Zip压缩多个文件实例源码.zip
好的,我来帮您解决这个问题。可以按照以下步骤实现:
1. 读入方阵的个数n;
2. 循环n次,每次读入一个方阵的数据;
3. 对每个方阵进行左右对折,判断相应位置的数字是否相等;
4. 如果都相等,则进行下一步操作,否则输出“no”并退出当前循环;
5. 对每个方阵进行上下对折,判断相应位置的数字是否相等;
6. 如果都相等,则输出“yes”,否则输出“no”。
下面是相应的Python代码实现:
```python
n = int(input()) # 读入方阵的个数n
for i in range(n):
m = int(input()) # 读入该方阵的阶m
matrix = []
for j in range(m):
row = list(map(int, input().split()))
matrix.append(row)
# 左右对折
for j in range(m):
for k in range(m//2):
if matrix[j][k] != matrix[j][m-k-1]:
print("no")
break
else:
continue
break
else:
# 上下对折
for j in range(m//2):
for k in range(m):
if matrix[j][k] != matrix[m-j-1][k]:
print("no")
break
else:
continue
break
else:
print("yes")
```
阅读全文