📜  五角锥数

📅  最后修改于: 2021-10-23 08:43:20             🧑  作者: Mango

给定一个数 n,找出第n 个五角锥数。
五角锥数属于无花果数类。它是具有五边形底面的金字塔中的物体数量。第 n 个五角锥数等于前 n 个五角锥数之和。
例子:

Input : n = 3 
Output : 18

Input : n = 7
Output : 196

方法1:(天真的方法):
这种方法很简单。它说将所有五边形数字添加到 n(通过运行循环)以获得第 n 个五边形金字塔数字。

下面是这个方法的实现:

C++
// CPP Program to get nth Pentagonal
// pyramidal number.
#include 
using namespace std;
 
// function to get nth Pentagonal
// pyramidal number.
int pentagon_pyramidal(int n)
{
    int sum = 0;
 
    // Running loop from 1 to n
    for (int i = 1; i <= n; i++) {
 
        // get nth pentagonal number
        int p = (3 * i * i - i) / 2;
 
        // add to sum
        sum = sum + p;
    }
    return sum;
}
 
// Driver Program
int main()
{
    int n = 4;
    cout << pentagon_pyramidal(n) << endl;
    return 0;
}


Java
// Java Program to get nth
// Pentagonal pyramidal number.
import java.io.*;
 
class GFG
{
 
// function to get nth
// Pentagonal pyramidal number.
static int pentagon_pyramidal(int n)
{
    int sum = 0;
 
    // Running loop from 1 to n
    for (int i = 1; i <= n; i++)
    {
 
        // get nth pentagonal number
        int p = (3 * i * i - i) / 2;
 
        // add to sum
        sum = sum + p;
    }
    return sum;
}
 
// Driver Code
public static void main (String[] args)
{
    int n = 4;
    System.out.println(pentagon_pyramidal(n));
}
}
 
// This code is contributed by anuj_67.


Python3
# Python3 Program to get nth Pentagonal
# pyramidal number.
   
# function to get nth Pentagonal
# pyramidal number.
def pentagon_pyramidal(n):
    sum = 0
 
    # Running loop from 1 to n
    for i in range(1, n + 1):
   
        # get nth pentagonal number
        p = ( 3 * i * i - i ) / 2
 
        # add to sum
        sum = sum + p      
  
    return sum
 
   
# Driver Program
n = 4
print(int(pentagon_pyramidal(n)))


C#
// C# Program to get nth
// Pentagonal pyramidal number.
using System;
 
class GFG
{
     
// function to get nth
// Pentagonal pyramidal number.
static int pentagon_pyramidal(int n)
{
    int sum = 0;
 
    // Running loop from 1 to n
    for (int i = 1; i <= n; i++)
    {
 
        // get nth pentagonal number
        int p = (3 * i *
                 i - i) / 2;
 
        // add to sum
        sum = sum + p;
    }
    return sum;
}
 
// Driver Code
static public void Main ()
{
    int n = 4;
    Console.WriteLine(pentagon_pyramidal(n));
}
}
 
// This code is contributed by ajit.


PHP


Javascript


C++
// CPP Program to get nth Pentagonal
// pyramidal number.
#include 
using namespace std;
 
// function to get nth Pentagonal
// pyramidal number.
int pentagon_pyramidal(int n)
{
    return n * n * (n + 1) / 2;
}
 
// Driver Program
int main()
{
    int n = 4;
    cout << pentagon_pyramidal(n) << endl;
    return 0;
}


Java
// Java Program to get nth
// Pentagonal pyramidal number.
import java.io.*;
 
class GFG
{
     
// function to get nth
// Pentagonal pyramidal number.
static int pentagon_pyramidal(int n)
{
    return n * n *
          (n + 1) / 2;
}
 
// Driver Code
public static void main (String[] args)
{
    int n = 4;
    System.out.println(pentagon_pyramidal(n));
}
}
 
// This code is contributed by ajit


Python3
# Python3 Program to get nth Pentagonal
# pyramidal number.
   
# function to get nth Pentagonal
# pyramidal number.
def pentagon_pyramidal(n):    
    return n * n * (n + 1) / 2
 
   
# Driver Program
n = 4
print(int(pentagon_pyramidal(n)))


C#
// C# Program to get nth
// Pentagonal pyramidal number.
using System;
 
class GFG
{
     
// function to get nth
// Pentagonal pyramidal number.
static int pentagon_pyramidal(int n)
{
    return n * n *
          (n + 1) / 2;
}
 
// Driver Code
static public void Main ()
{
    int n = 4;
    Console.WriteLine(
            pentagon_pyramidal(n));
}
}
 
// This code is contributed
// by ajit


PHP


Javascript


输出 :

40

时间复杂度: O(n)

方法二:(有效方法):
在这种方法中,我们使用公式在 O(1) 时间内获得第 n 个五角锥体数。

第 n 个五角锥数 = n 2 (n + 1) / 2
下面是这个方法的实现:

C++

// CPP Program to get nth Pentagonal
// pyramidal number.
#include 
using namespace std;
 
// function to get nth Pentagonal
// pyramidal number.
int pentagon_pyramidal(int n)
{
    return n * n * (n + 1) / 2;
}
 
// Driver Program
int main()
{
    int n = 4;
    cout << pentagon_pyramidal(n) << endl;
    return 0;
}

Java

// Java Program to get nth
// Pentagonal pyramidal number.
import java.io.*;
 
class GFG
{
     
// function to get nth
// Pentagonal pyramidal number.
static int pentagon_pyramidal(int n)
{
    return n * n *
          (n + 1) / 2;
}
 
// Driver Code
public static void main (String[] args)
{
    int n = 4;
    System.out.println(pentagon_pyramidal(n));
}
}
 
// This code is contributed by ajit

蟒蛇3

# Python3 Program to get nth Pentagonal
# pyramidal number.
   
# function to get nth Pentagonal
# pyramidal number.
def pentagon_pyramidal(n):    
    return n * n * (n + 1) / 2
 
   
# Driver Program
n = 4
print(int(pentagon_pyramidal(n)))

C#

// C# Program to get nth
// Pentagonal pyramidal number.
using System;
 
class GFG
{
     
// function to get nth
// Pentagonal pyramidal number.
static int pentagon_pyramidal(int n)
{
    return n * n *
          (n + 1) / 2;
}
 
// Driver Code
static public void Main ()
{
    int n = 4;
    Console.WriteLine(
            pentagon_pyramidal(n));
}
}
 
// This code is contributed
// by ajit

PHP


Javascript


输出 :

40

时间复杂度: O(1)

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程