中心十六邊形數


十六邊形數是指代表十六邊形的數字。十六邊形是一種由16條邊組成的多邊形。

中心十六邊形數是指由中心的一個點和圍繞它以連續的十六邊形層(即16邊形)排列的其他點所表示的數字。我們可以透過下面的圖更好地理解中心十六邊形數。

第一個中心十六邊形數的中心只有一個點。因此,第一個中心十六邊形數為1。

下一個中心十六邊形數包含一箇中心點和圍繞它的一個十六邊形。因此,下一個數字將是17。

下一個中心十六邊形數將是49,因為中心將有一個點,周圍環繞著連續的十六邊形層,即16和32。因此,這個數字將是16+32+1=49。

每個第n箇中心十六邊形數都遵循類似的概念。以此類推,前幾個中心十六邊形數是**1, 17, 49, 97, 161, 241……**

問題陳述包括我們需要根據給定的輸入N列印第N箇中心十六邊形數。

例如:

輸入 : 5

輸出 : 161

輸入: 8

輸出: 449

以下是解決該問題的演算法。

演算法

對於這個問題,我們需要識別問題中遵循的模式,以便計算第n箇中心十六邊形數。

中心十六邊形數的概念表明,它由中心的一個點和圍繞它的連續的十六邊形層表示。連續的十六邊形層可以表示為16, 32, 48, 64…。如果我們注意形成的模式,它形成了一個公差為16的等差數列。

由於前幾個中心十六邊形數為1, 17, 49, 97…。如果我們仔細觀察這個模式,它只不過是從0和1開始,直到N的連續十六邊形層的總和。

從0開始的連續十六邊形層的序列將是0, 16, 32, 48, 64…。

  • 第一個中心十六邊形數是1,即0+1。

  • 第二個中心十六邊形數是17,即0+16+1。

  • 第三個中心十六邊形數是49,即0+16+32+1。

  • 第四個中心十六邊形數是97,它只是直到N(這裡是4)和1的連續十六邊形層的總和。它可以表示為0+16+32+48+1。

透過以上例子,我們可以認為第n箇中心十六邊形數是n項等差數列的和,其公差為16,首項為0。為了計算第n箇中心十六邊形數,它可以寫成:

CHn = 等差數列n項和 + 1

$$\mathrm{CH_n\:=\:\frac{n}{2}(2a\:+(n-1)d)+1}$$

𝐶𝐻𝑛= 第n箇中心十六邊形數

a= 等差數列的首項,為0

d= 等差數列的公差,即16

將所需的值代入上述公式,它可以進一步修改為:

$$\mathrm{CD_n\:=\:\frac{16n}{2}(n-1)+1}$$

$$\mathrm{CD_n\:=\:8n(n-1)+1}$$

我們將使用上面推導的公式來計算我們方法中的第n箇中心十六邊形數。

方法

  • 初始化一個函式來計算第N箇中心十六邊形數。

  • 使用上面推導的公式計算第N個值。

  • 我們將初始化一個變數來儲存第n箇中心十六邊形數的值。

  • 返回變數,這將是我們需要的輸出。

示例

以下是C++中該方法的實現:

#include <iostream>
#include<bits/stdc++.h>

using namespace std;

//function to calculate the nth centred Hexadecagonal number
int CHn(int N){
   int a= 8 * N * (N-1) + 1; //used to store nth centred Hexadecagonal number value
   
   return a; //return the answer
}
int main(){
   int N=5;
   cout<<CHn(N)<<endl;
   
   N=10;
   cout<<CHn(N)<<endl;
   
   N=13;
   cout<<CHn(N)<<endl;
   
   return 0;
}

輸出

161
721
1249

**時間複雜度:O(1)**,因為時間是恆定的。

**空間複雜度:O(1)**,因為不需要額外的空間。

結論

在本文中,我們嘗試學習中心十六邊形數的概念。我們還提出了一種方法,可以為任何正數N列印第N箇中心十六邊形數。

我希望您覺得本文有助於解決您關於該概念的所有疑問。

更新於:2023年3月16日

瀏覽量:141

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.