中心十九邊形數
問題陳述包括列印任何正值 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 箇中心十九邊形數。
我希望閱讀本文後,您所有的概念都已澄清。