鱼C论坛

 找回密码
 立即注册
查看: 2835|回复: 21

[已解决]为什么RE啊

[复制链接]
发表于 2023-7-8 21:31:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 sfqxx 于 2023-7-8 22:00 编辑

题目:
给定一个 N 行 N 列的网格,每个方块上都写着一个整数 A[i][j],其中 i 表示从上往下的行数,j 表示从左往右的列数。保证 A[i][j] 的取值为 0 或 1。

将外层方块中的整数顺时针移动一格,并打印出结果网格。

这里,外层方块指的是第一行、最后一行、第一列和最后一列中的方块。

约束条件
2 ≤ N ≤ 100
0 ≤ A[i][j] ≤ 1(1 ≤ i, j ≤ N)
输入
输入以以下格式从标准输入中给出:

N
A[1][1] A[1][2] ... A[1][N]
A[2][1] A[2][2] ... A[2][N]
⋮
A[N][1] A[N][2] ... A[N][N]
输出
将结果网格中每个方块的整数 B[i][j] 按如下格式打印出来:

B[1][1] B[1][2] ... B[1][N]
B[2][1] B[2][2] ... B[2][N]
⋮
B[N][1] B[N][2] ... B[N][N]
样例输入1
复制
4
0101
1101
1111
0000
样例输出1
复制
1010
1101
0111
0001
我们用 (i, j) 表示从上往下的 i-th 行和从左往右的 j-th 列中的方块。

外层方块按照顺时针的顺序依次为:(1,1),(1,2),(1,3),(1,4),(2,4),(3,4),(4,4),(4,3),(4,2),(4,1),(3,1) 和 (2,1)。

样例输出展示了将这些方块中的整数按顺时针方向向右移动一格后得到的结果网格。

我的代码:
  1. a = int(input())

  2. c = []

  3. for _ in range(a):

  4.     b = list(map(int, input().split()))

  5.     c.append(b)

  6. print()

  7. i = 0

  8. for _ in range(a - 1):

  9.     print(c[i], end="")

  10.     i += 1

  11. print()

  12. j = 2

  13. h = 1

  14. for _ in range(a):

  15.     print(c[a * j + 1], end="")

  16.     g = 2

  17.     for _ in range(a - 1):

  18.         print(c[a * h + g], end="")

  19.         g += 1

  20.     print()

  21.     j += 1

  22. k = a - 1

  23. for _ in range(a - 1):

  24.     print(a * a - k, end="")

  25.     k -= 1

  26. print((a - 1) * a)

复制代码


RE了
最佳答案
2023-7-9 09:24:22
  1. n = int();
  2. s = [['' for i in range(102)] for i in range(102)]
  3. n = int(input())

  4. for i in range(1, n + 1):
  5.     s[i] = ' ' + input()

  6. for i in range(1, n + 1):
  7.     for j in range(1, n + 1):
  8.         if i != 1 and j != 1 and i != n and j != n:
  9.                 print(s[i][j], end = '')
  10.         else:
  11.             if i == 1:
  12.                 if j == 1:
  13.                     print(s[i + 1][j], end = '')
  14.                 else:
  15.                     print(s[i][j - 1], end = '')
  16.             elif j == n:
  17.                 if i == 1:
  18.                     print(s[i][j + 1], end = '')
  19.                 else:
  20.                     print(s[i - 1][j], end = '')
  21.             elif i == n:
  22.                 if j == n:
  23.                     print(s[i + 1][j], end = '')
  24.                 else:
  25.                     print(s[i][j + 1], end = '')
  26.             elif j == 1:
  27.                 if i == n:
  28.                     print(s[i][j - 1], end = '')
  29.                 else:
  30.                     print(s[i + 1][j], end = '')
  31.     print()
复制代码


这是我按照我原本的 C++ 代码翻译过来的,供参考。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-7-8 21:36:32 | 显示全部楼层
我连题目都没有看懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-8 21:37:27 | 显示全部楼层
还有,应该改为A[ i ][j],就不会斜体了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-8 22:01:00 | 显示全部楼层
元豪 发表于 2023-7-8 21:36
我连题目都没有看懂

就是外面12个数字顺时针交换位置
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-8 23:03:25 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-9 08:22:14 | 显示全部楼层
sfqxx 发表于 2023-7-8 22:01
就是外面12个数字顺时针交换位置

这么简单?!

我哭死啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-9 08:56:49 | 显示全部楼层
元豪 发表于 2023-7-9 08:22
这么简单?!

我哭死啊

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-9 08:58:34 | 显示全部楼层
  1. print(c[a * j + 1], end="")
复制代码


what's this, c 不是二维数组吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-9 09:00:40 From FishC Mobile | 显示全部楼层
zhangjinxuan 发表于 2023-7-9 08:58
what's this, c 不是二维数组吗

所以怎么搞
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-9 09:03:25 | 显示全部楼层

你这样想,你再记一个数组 ans,对应答案数组,然后你就先把外圈的数字对应的 ans 求出来,再填剩余内部的数字,最后输出 ans
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-9 09:07:51 | 显示全部楼层
zhangjinxuan 发表于 2023-7-9 09:03
你这样想,你再记一个数组 ans,对应答案数组,然后你就先把外圈的数字对应的 ans 求出来,再填剩余内部 ...

不会,我只会找规律
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-9 09:09:27 | 显示全部楼层
zhangjinxuan 发表于 2023-7-9 09:03
你这样想,你再记一个数组 ans,对应答案数组,然后你就先把外圈的数字对应的 ans 求出来,再填剩余内部 ...

写一点点代码呗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-9 09:16:50 | 显示全部楼层
sfqxx 发表于 2023-7-9 09:07
不会,我只会找规律


《找 规 律》
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-9 09:24:22 | 显示全部楼层    本楼为最佳答案   
  1. n = int();
  2. s = [['' for i in range(102)] for i in range(102)]
  3. n = int(input())

  4. for i in range(1, n + 1):
  5.     s[i] = ' ' + input()

  6. for i in range(1, n + 1):
  7.     for j in range(1, n + 1):
  8.         if i != 1 and j != 1 and i != n and j != n:
  9.                 print(s[i][j], end = '')
  10.         else:
  11.             if i == 1:
  12.                 if j == 1:
  13.                     print(s[i + 1][j], end = '')
  14.                 else:
  15.                     print(s[i][j - 1], end = '')
  16.             elif j == n:
  17.                 if i == 1:
  18.                     print(s[i][j + 1], end = '')
  19.                 else:
  20.                     print(s[i - 1][j], end = '')
  21.             elif i == n:
  22.                 if j == n:
  23.                     print(s[i + 1][j], end = '')
  24.                 else:
  25.                     print(s[i][j + 1], end = '')
  26.             elif j == 1:
  27.                 if i == n:
  28.                     print(s[i][j - 1], end = '')
  29.                 else:
  30.                     print(s[i + 1][j], end = '')
  31.     print()
复制代码


这是我按照我原本的 C++ 代码翻译过来的,供参考。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-9 09:33:41 | 显示全部楼层
zhangjinxuan 发表于 2023-7-9 09:24
这是我按照我原本的 C++ 代码翻译过来的,供参考。

第一行??。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-9 09:39:37 | 显示全部楼层

没啥用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-9 09:42:57 | 显示全部楼层

不会报错吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-9 09:44:11 | 显示全部楼层

去掉似乎不会,因为第二行没有引用 n,第三行也在初始化 n,因此,1行无用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-9 09:45:01 | 显示全部楼层
zhangjinxuan 发表于 2023-7-9 09:44
去掉似乎不会,因为第二行没有引用 n,第三行也在初始化 n,因此,1行无用

加分号不会报错吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-9 09:45:41 | 显示全部楼层
sfqxx 发表于 2023-7-9 09:45
加分号不会报错吗?

真的不会,你敢信

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 12:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表