专栏文章
题解 B4124:右箭头
B4124题解参与者 9已保存评论 8
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @miqg8ow9
- 此快照首次捕获于
- 2025/12/04 04:18 3 个月前
- 此快照最后确认于
- 2025/12/04 04:18 3 个月前
本题考查循环的综合应用,对选手分析题目、拆解结构的能力也提出了一定要求。
我们可以通过循环嵌套实现二维图形的输出。外层循环枚举行号 ,而内层循环可以分为横杠和三角形分开写。
CPPfor(int i=1;i<=n;i++){
for(int j=1;j<=lbar;j++) // lbar 是矩形宽
// 矩形部分
for(int j=1;j<=(n+1)/2;j++)
// 三角形部分
printf("\n");
}
确定矩形形状
三角形的水平宽度为 ,所以矩形部分的水平宽度 。
接下来考虑矩形部分哪些行是
#,哪些行是 .。由于横杠一共 行,上下部分留白一样高,所以矩形部分留白高度为 。由此可知矩形部分输出
# 的等价条件是 (n-k)/2 < i && i<= n-(n-k)/2。确定三角形形状
这一部分可以通过找规律等方法简化思考。
前 行内,第 行会输出 个
#,因此输出 # 的条件是 。后面的行内,第 行会输出 个
#,因此输出 # 的条件是 。但是实际写的时候,你不需要分类讨论 在哪个半边(上半边还是下半边),只要把两个条件用
&& 连接即可。不难发现,在一个半边生效的条件,在另一个半边总是自然生效的。相关推荐
评论
共 8 条评论,欢迎与作者交流。
正在加载评论...