中心十九边形数
问题陈述包括打印任何正值 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 个中心十九边形数。
我希望阅读本文后,您所有的概念都已澄清。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP