C++ 中的二十一面体数

2025 年 5 月 15 日 | 阅读 4 分钟

二十一边形数(Icosikaienneagonal Number)是一种有21条边的多边形数。根据公式 P21 (k) = k.(19k−17)/2,其中 k 是序列的位置。该序列中的数字依次为 1、21、62、124 等。这个概念的 C++ 实现可以是一个计算第 k 个二十一边形数的函数。通过生成一个特定项数的序列,循环对于研究多边形数很有用。这个公式及其应用提供了对计算问题解决和数论的见解,揭示了编程与数学之间的关系。

公式

确定第 k 个二十一边形数的公式如下:

其中 k 是序列的位置(1, 2, 3,...)。

序列示例

根据公式,前几个二十一边形数是 1 21 60 118 195 291 406 540 693 865

算法

步骤 1: 开始

第 2 步: 输入 n(要生成的项数)。

第 3 步: 初始化 k=1(从第一个位置开始生成数字)。

第 4 步: 重复以下步骤,直到 k>n

第 4.1 步: 使用公式计算第 k 个二十一边形数

P21 (k) = k.(19k−17)/2

第 4.2 步: 输出 P21 (k)。

第 4.3 步: k 增加 1(k=k+1)。

第 5 步: 结束。

工作示例

假设 n=10

  1. K=1: P21(1)=1.(19.1-17)/2=1
  2. K=2: P21(2)=2.(19.2-17)/2=21
  3. K=3: P21(3)=3.(19.3-17)/2=60
  4. K=4: P21(4)=4.(19.4-17)/2=118
  5. K=5: P21(5)=5.(19.5-17)/2=195
  6. K=6: P21(6)=6.(19.6-17)/2=291
  7. K=7: P21(7)=7.(19.7-17)/2=406
  8. K=8: P21(8)=8.(19.8-17)/2=540
  9. K=9: P21(9)=9.(19.9-17)/2=693
  10. K=10: P21(10)=10.(19.10-17)/2=865

示例 1

让我们举一个例子来说明 C++ 中的二十一边形数

输出

Enter the number of Icosikaienneagonal Numbers to generate: 100
The first 100 Icosikaienneagonal Numbers are: 1 21 60 118 195 291 406 540 693 865 1056 1266 1495 1743 2010 2296 2601 2925 3268 3630 4011 4411 4830 5268 5725 6201 6696 7210 7743 8295 8866 9456 10065 10693 11340 12006 12691 13395 14118 14860 15621 16401 17200 18018 18855 19711 20586 21480 22393 23325 24276 25246 26235 27243 28270 29316 30381 31465 32568 33690 34831 35991 37170 38368 39585 40821 42076 43350 44643 45955 47286 48636 50005 51393 52800 54226 55671 57135 58618 60120 61641 63181 64740 66318 67915 69531 71166 72820 74493 76185 77896 79626 81375 83143 84930 86736 88561 90405 92268 94150 

编译和运行

  • 将应用程序保存为 icosikaienneagonal.cpp。
  • 使用 C++ 编译器编译代码(例如,g++ icosikaienneagonal.cpp -o icosikaienneagonal)。
  • 运行应用程序(./icosikaienneagonal)。

工作方式

  • 输入: 用户选择他们想要的项数。
  • 函数: `icosikaienneagonalNumber` 函数应用公式来找出这个数字。
  • 循环: 程序遍历 k 的值,计算每一项。
  • 输出: 数字按顺序显示出来。

示例 2

让我们再举一个例子来说明 C++ 中的二十一边形数

输出

Enter the number of Icosikaienneagonal Numbers to generate: 10
The first 10 Icosikaienneagonal Numbers are: 1 21 60 118 195 291 406 540 693 865

说明

  • 动态向量存储
    使用向量(vector)来存储结果,使得扩展和检索变得简单。它提供了一种灵活的方法来管理计算出的序列的内存。
  • 独立的计算函数
    `calculateIcosikaienneagonal` 函数包含了计算逻辑,以提高模块化和可重用性。
  • 用于迭代计算的循环
    循环通过迭代计算数值并将其存储在向量中。
  • 增强的输出
    程序以有序和结构化的方式呈现序列。

结论

总而言之,二十一边形数(Icosikaienneagonal Numbers),即 21 边形数,突显了数学与编程之间迷人的交集。使用公式 P21 (k) = k.(19k−17)/2,可以轻松生成这些数字,以研究它们的独特属性和序列。在 C++ 中实现这一过程,展示了如何将数学公式转化为实用代码,从而实现动态计算和复杂模式的展示。这些程序,无论它们是使用循环、函数,还是像 向量 这样的动态存储,不仅增进了我们对数论的理解,也展示了编程在解决数学问题和分析数值序列方面的灵活性。