gpt4 book ai didi

c++ - 星星菱形使用c++

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:09:58 27 4
gpt4 key购买 nike

如何使用最少数量的循环和变量在 C++ 中以菱形输出以下星号。最大数量星数 = n(从用户那里获取的输入)

  *
* *
* * * = n
* *
*

我尝试只用 2 个循环来做,但没有成功,而且程序太复杂难以理解,所以没有在这里包含它。

那么你能想到什么算法?

最佳答案

那不是金字塔,那是菱形:)

不管怎样,让我们​​看看星星数:

  • n=1 -> 1 星
  • n=2 -> 4 颗星
  • n=3 -> 9 颗星

该模式看起来像是从 1 到 n 减去 n 的和的两倍(因为中间行存在一次而不是两次),所以 s(n) = 2 * (1+n)/2 * n - n = (1+n)*n-n = n*n 嘿,这是正方形的面积!多么令人惊讶。 :-)

现在如何绘制一个n大小的菱形:

  • 将有 2*n-1
  • 每行的宽度为w = 2*n-1 个字符
  • 每第 i 行(从 i=0 开始)有 m = min(i+1, 2*n-1-i) 星,和 m-1它们之间的空格
  • 所以每一行需要 w - (m) - (m-1) 两边的空间填充,即 w/2 左右两侧。

现在开始写吧! :)

关于c++ - 星星菱形使用c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8816348/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com