1 条题解
-
0
自动搬运
来自洛谷,原作者为

残阳如血
人事已尽,天命难违搬运于
2025-08-24 21:15:25,当前版本为作者最后更新于2023-10-01 13:49:50,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
Upd on 2025/2/15:之前写的太草率了,很多人反映看不懂,重新写了全部内容,希望可以帮助大家理解。
首先在题目中找规律。
考虑行与行之间是独立的,所以可以将每行分开考虑。
P.S.
下面的叙述中, 默认从 开始,即 。
此外,暂时忽略取模,具体取模过程详见代码。
假设当前正要输出第 行,则其开头字母为
(char)(i + 'A')。从 到 遍历当前行中的第 个字符。
- 当 时,字符为
(char)(i + 'A'); - 当 时,字符为
(char)(i + 'A' + 1); - 当 时,字符为
(char)(i + 'A' + 2); - 当 时,字符为
(char)(i + 'A' + 3);
将所有的
+ 'A'提出,就可以得到对于第 位,值就是 。当然, 可能会大于 ,所以要对这个值取模。
#include <bits/stdc++.h> int n; int main() { std::cin >> n; for (int i = 0; i < n; ++i) { // 遍历每一行 for (int j = 0; j < n; ++j) { // 遍历每一列 std::cout << (char)((i + j) % 26 + 'A'); // 不要忘记要加上 'A' } std::cout << std::endl; } return 0; } - 当 时,字符为
- 1
信息
- ID
- 9138
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者