python “福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。 输入格式: 输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。 输出格式: 输出倒置的网格,如样例所示。但是,如果这个字正过来倒过去是一样的,就先输出bu yong dao le,然后再用输入指定的字符将其输出。 输入样例 1: $ 9 @ @@@@@ @@@ @@@ @ @ @ @@@ @@@ @@@ @@@@@ @@@ @ @ @ @@@ @@@@@ @ @ @ @ @ @@@@@ 输出样例 1: $$$$$ $ $ $ $ $ $$$$$ $$$ $ $ $ $$$ $$$$$ $$$ $$$ $$$ $ $ $ $$$ $$$ $$$$$ $ 输入样例 2: & 3 @@@ @ @@@ 输出样例 2: bu yong dao le &&& & &&&
时间: 2023-09-29 09:11:03 浏览: 52
用python来做“福”字书法
以下是 Python 代码实现:
```python
char, n = input().split()
n = int(n)
grid = []
for i in range(n):
row = input().strip()
grid.append(row)
if grid == grid[::-1]:
print("bu yong dao le")
else:
for i in range(n):
for j in range(n):
if grid[n-j-1][n-i-1] == ' ':
print(' ', end='')
else:
print(char, end='')
print()
```
解释一下代码:
- 首先,我们读入输入的字符和网格的规模,并将规模转换为整数类型。
- 然后,我们读入每一行网格,并将其存储在一个二维列表 `grid` 中。
- 接着,我们判断网格是否翻转后和原来一样。如果一样,就输出 `bu yong dao le`。
- 否则,我们遍历网格的每个位置,将其翻转后输出。具体来说,对于位置 `(i,j)`,它在翻转后的位置是 `(n-j-1, n-i-1)`。如果该位置上是空格,则输出空格;否则,输出指定的汉字。
- 注意,在输出每一行时,需要使用 `print()` 函数输出一个换行符,以便将翻转后的网格输出为一个矩阵。
阅读全文