1 条题解
-
0
思路
第 i 行(从 1 数起)由三段拼成:
- 前导空格:
n - i个; - 上升段:
A B C ...共 i 个字母,第 j 个是'A' + j - 1; - 下降段:接着往回
... C B A,共i - 1个字母。
用一个双重循环就能画出来。
代码
#include <stdio.h> int main() { int n; scanf("%d", &n); for (int i = 1; i <= n; i++) { for (int j = 0; j < n - i; j++) printf(" "); // 空格 for (int j = 0; j < i; j++) printf("%c", 'A' + j); // 上升 for (int j = i - 2; j >= 0; j--) printf("%c", 'A' + j); // 下降 printf("\n"); } return 0; }易错点
- 下降段的起点是
i - 2(比上升段最后一个少 1),否则中间字母会重复两次。 - 行末不要多打空格,直接换行。
- 前导空格:
- 1
信息
- ID
- 17
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者
吉公网安备22010402001496号