C++ 同心矩形图案

17 Mar 2025 | 4 分钟阅读

“**同心**”一词指的是一种模式,其中许多**球体、圆形**或其他形状围绕一个**中心点**放置,每个后续形状都包含前一个形状。为了在主轴周围实现对称和平衡,组件通常按**层**或**级别**的层次结构放置,这是该词最常指的含义。**同心形状**广泛存在于**自然界**、**艺术**和**建筑**中,它们可能代表**平衡、完整**和**和谐**。这个概念在**生物学、工程学**和**建筑学**中都有应用,其中将结构围绕核心特征分组可以产生有利的功能或美学效果。

**同心矩形图案**是计算机编程中使用的一种设计或布局,其中不同大小的多个矩形围绕一个**共同中心**放置。图形用户界面(GUI)、数据可视化和游戏设计只是可能受益于此配置的美学和组织性的一些应用示例。

这个概念需要定位或**排列矩形**,以生成一组类似于树环的**嵌套结构**。图案的焦点是**中心矩形**,其两侧是尺寸相应增加的后续矩形。每个矩形的**尺寸、位置**和距中心点的**偏移量**均经过计算,以生成此图案。

实现该模式的方法有很多。当我们有**两个输入**用于行和列时,另一种方法是**获取一个输入**,该输入将根据单个输入打印行和列,另一种方法是以这样一种方式打印模式,即**输入数字**是矩形最外层的那个。

1. 接受行和列两个输入的模式

输出

Concentric Rectangular Pattern in C++

2. 打印只接受一个行和列输入的模式

输出

Concentric Rectangular Pattern in C++

3. 以只有输入作为边界的方式打印模式

输出

Concentric Rectangular Pattern in C++

说明

  • 为了打印上述图案,我们需要理解矩阵具有“**2n - 1**”行和“**2n - 1**”列,并且它分为两半:**上半部分**的行从“**0 到 floor((2n - 1)/2)**”,而**下半部分**的行从“**floor((2n - 1)/2) + 1**”到“**2*n - 2**”。每行的图案由**递减序列、常数序列**和**递增序列**组成。
  • 一系列**循环**和基本的**算术运算**用于改变每个单元格中打印的数字以执行推理。**上半部分**和**下半部分**的对称性(除了中心行)使过程更简单。
  • **上半部分方法**涉及通过从**第 0 行**循环到“**floor((2*n - 1)/2)**”并根据规定逻辑计算数字来管理模式。虽然**第二部分**采用常数“**n - i**”,但第一部分和第三部分使用递减和递增序列。结果是设计的上半部分。
  • **下半部分**解决方案采用从“**floor((2*n - 1)/2)**”向下到**0**的循环来构建下半部分的模式,并产生**对称**且**美观的设计**。

下一个主题C++ 中的内置函数