中心十九边形数


问题陈述包括打印任何正值 N 的第 N 个中心十九边形数。

中心十九边形数是以特定图形模式表示的数字。这个数字可以用图形表示为中心的一个点,周围环绕着连续的十九边形层。

十九边形是数学中的一种多边形,它有 19 条边。十九边形的连续层表明,围绕中心点的第一层将是 19 边形,然后是 38 边形,依此类推。

下面的图形可以更好地理解这些数字。

第一个数字表示为中心的一个点。因此,第一个中心十九边形数为 1。

下一个数字表示为中心的一个点,周围环绕着一个十九边形。因此,这个数字将是 1+19=20。

下一个数字表示为中心的一个点,周围环绕着十九边形的连续层,即 19 边形和 38 边形,使数字为 1+19+38=58。

类似地,中心十九边形数序列中的所有后续数字都遵循相同的模式。我们可以按照图形模式得到中心十九边形数序列中的任何一个数。中心十九边形数序列的前几个数字是 **1, 20, 58, 115, 191, 286, 400, 533……**

正整数 N 将是用户输入,我们需要在这个问题中打印与 N 值对应的中心十九边形数的值。

**示例** -

INPUT : N=5
OUTPUT : 191

**说明** - 给定的 N 值为 5。中心十九边形数序列中的第 5 个数是 191,它表示为中心的一个点,周围环绕着 4 个连续的十九边形层。

INPUT : N=8
OUTPUT : 533

**说明** - 与 N 对应的中心十九边形数的值为 533,即第 8 个中心十九边形数。它表示为中心的一个点,周围环绕着 7 个连续的十九边形层。

让我们了解一下根据数字中的模式打印第 N 个中心十九边形数的算法。

算法

观察每个中心十九边形数遵循的模式,我们可以找出计算第 N 个中心十九边形数的表达式。

可以清楚地看到,每个中心十九边形数都是 (N-1) 个连续的十九边形层之和 + 1,因为第一个数字在中心点周围有 0 个十九边形层,而第二个数字在中心点周围有一层,第三个数字在中心点周围有 2 个连续的十九边形层,依此类推。

十九边形的前几个连续层是 19、38、57、76、95……

十九边形的连续层序列形成了一个等差数列,第一项为 19(即 a=19),公差为 19(即 d=19)。我们可以说,每个第 N 个中心十九边形数是 1 加上 (N-1) 个连续的十九边形层的和,观察遵循的图形模式。

(中心十九边形)𝑁 = (𝑁 − 1) 个连续的十九边形层的和 + 1

可以使用等差数列 n 项和的公式计算 (N-1) 个连续的十九边形层的和,因为十九边形的连续层形成了一个等差数列。

(中心十九边形)𝑁 = (𝑁 − 1) 个连续的十九边形层的和 + 1

可以使用等差数列 n 项和的公式计算 (N-1) 个连续的十九边形层的和,因为十九边形的连续层形成了一个等差数列。

$$\mathrm{S_n=\frac{n}{2}(2a+a(n−1)d)}$$

使用上述公式计算 (N-1) 个连续的十九边形层的和,其中 a=19 和 d=19。

$$\mathrm{(centered \: nonadecagonal)_N=\frac{(N−1)}{2}(2*19+(N−2)*19)+1}$$

该表达式可以进一步简化为:

$$\mathrm{(centered \: nonadecagonal)_N=\frac{19*(N−1)}{2}(2+N−2)+1\=\frac{19*N*(N−1)}{2}+1}$$

中心十九边形数序列中的每个数字都可以用上述表达式的形式表示,其中 N 是第 N 个中心十九边形数。

我们将在我们的方法中使用这个表达式$\mathrm{(\frac{19*N*(N−)}{2}+1)}$来获得任何大于 0 的 N 值的第 N 个中心十九边形数。

方法

为了在我们的方法中实现表达式以获得第 N 个中心十九边形数,需要遵循以下步骤 -

  • 创建一个函数来计算第 N 个中心十九边形数。

  • 创建一个变量来存储第 N 个数字的值。该变量应为 long long 数据类型,以存储较大 N 值的中心十九边形数的值。

  • 使用公式 $\mathrm{\frac {19*N*(N−1)}{2}+1}$ 获取第 N 个中心十九边形数的值,并将其存储在创建的变量中。

  • 返回该值并打印该值,因为该值将是我们所需的输出。

该方法的 C++ 代码 -

示例

//C++ code to print the N-th centered nonadecagonal number
#include <bits/stdc++.h>

using namespace std;

//function to calculate the N-th centered nonadecagonal number for any value of N
long long number(int N){
   //to store the N-th number
   long long n = (19*N*(N-1)/2)+1; //using the formula 19*N*(N-1)2+1
   return n; //return the N-th centered nonadecagonal number
}
int main(){
   int N;
   N=11;
   //calling the function
   cout<<"The N-th centered nonadecagonal number is "<<number(N)<<endl;
   N=20;
   cout<<"The N-th centered nonadecagonal number is "<<number(N)<<endl;
   return 0;
}

输出

The N-th centered nonadecagonal number is 1046
The N-th centered nonadecagonal number is 3611

**时间复杂度 - O(1)**,因为计算第 N 个中心十九边形数需要常数时间。

**空间复杂度 - O(1)**,因为没有占用额外的空间。

结论

我们在本文中讨论了中心十九边形数及其图形表示。我们推导出一个公式,使用每个数字遵循的模式来表示任何第 N 个中心十九边形数,我们在 C++ 中的方法中使用它来打印第 N 个中心十九边形数。

我希望阅读本文后,您所有的概念都已澄清。

更新于: 2023 年 9 月 27 日

78 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.