Loading [MathJax]/jax/output/HTML-CSS/jax.js

中心十二边形数


中心十二边形数指的是一个图形数,它表示一个十二边形。中心十二边形数由中心的一个点和围绕它的连续十二边形(即一个12边多边形)层中的其他点表示。

下图可以更好地解释中心十二边形数。

对于n=1,中心只有一个点。因此输出为1。

对于n=2,中心有一个点,周围围绕着一个十二边形。因此,点的总数为13。所以下一个中心十二边形数为13。

对于n=3,中心有一个点,周围围绕着一个十二边形,再由下一层连续的十二边形包围,这一层包含24个点。因此,点的总数为37,这将是下一个中心十二边形数。

类似地,对于每个正数n,都将遵循此规律。根据这一点,前几个中心十二边形数将是 **1, 13, 37, 73, 121, 181……**。

在这个问题中,我们将得到任意一个正数n,我们需要打印第n个中心十二边形数。

例如:

**输入** - 2

**输出** - 13

**输入** - 5

**输出** - 121

以下是解决此问题的算法。

算法

为了计算第n个中心十二边形数,我们需要找出这个问题中遵循的规律。

根据中心十二边形数的概念,它由中心的一个点和连续的十二边形层表示。连续的十二边形层是12, 24, 36, 48……如果我们仔细观察这个规律,它形成了一个公差为12的等差数列。

由于前几个中心十二边形数的序列是1, 13, 37, 73……这仅仅是十二边形层和中心一个点的总和。

如果我们考虑从0开始的连续十二边形层的序列,我们可以更好地理解它。

0, 12, 24, 36, 48.
For n=1, the centred dodecagonal number is 1 which is 0+1.
For n=2, the centred dodecagonal number is 13 which is 0+12+1.
For n=3, the centred dodecagonal number is 37 which is 0+12+24+1.

从这里我们可以认为,第n个中心十二边形数就是n项等差数列(从0开始,公差为12)的和加上1。

所以,第n个中心十二边形数的公式可以是:

CDn=n(a=0andd=12)+1

CDn=n2(2a+(n1)d)+1

这里,CDn 是第n个中心十二边形数

a是等差数列的首项,即0

d是等差数列的公差,即12

进一步,公式可以写成:

CDn=12n2(n1)+1

CDn=6n(n1)+1

我们将使用上述公式在我们的方法中计算第n个中心十二边形数。

方法

  • 为了解决这个问题,我们简单地创建一个函数来计算第n个中心十二边形数。

  • 我们将使用上面推导的公式来计算任何正数n的第n个中心十二边形数。

  • 返回计算出的值,这将是我们期望的输出。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例

以下是上述方法在C++中的实现 -

Open Compiler
#include <iostream> #include<bits/stdc++.h> using namespace std; //function to calculate the nth centred dodecagonal number int CDn(int N){ int ans= 6 * N * (N-1) + 1; //used to store nth centred dodecagonal number value return ans; //return the answer } int main(){ int N=8; cout<<CDn(N)<<endl; N=6; cout<<CDn(N)<<endl; N=12; cout<<CDn(N)<<endl; return 0; }

输出

337
181
793

**时间复杂度**: O(1),因为所花时间是常数。

**空间复杂度**: O(1),因为我们没有占用任何额外空间。

结论

在本文中,我们解决了打印第n个中心十二边形数的问题。我们学习了中心十二边形数的概念,并推导出了第n个数的公式。

我希望本文能帮助你理解和澄清你关于这个问题的所有概念。

更新于:2023年3月14日

浏览量:165

开启你的职业生涯

完成课程获得认证

开始学习
广告