C++绘制菱形(曼哈顿距离求解:贼快!!!)

本文介绍了使用C++绘制菱形的方法,重点在于利用曼哈顿距离来确定填充星号的位置。内容包括理解曼哈顿距离,以奇数行数的菱形为例,解释如何计算每个格子到中心点的距离,以及得出填充条件:当曼哈顿距离小于菱形行数的一半时填充星号。并提出了适用于不同大小菱形的公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:

1.双重for循环遍历输出是最基本的

2.了解曼哈顿距离

(1)菱形的输入一定是奇数

(2)我们是思想是填充 *

怎么填呢?我们来画图看看 

以 3*3 的矩阵为例子!

 我们来看看 距离是怎么定义的

类比下走格子,从某一个格子出发走多少个格子才能到达我们的目的地(只能一个一个格子走哦)

我们找最中间的那个格子,算下其他格子到这个最中心格子的距离

 以5 * 5为例子:

 

 

 也就是说 我们需要填充的 * 是曼哈顿距离小于 n/2 的格子。(n为菱形的行数)

最后:

引出一个公式: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值