📜  程序打印最多N项的四面体数字

📅  最后修改于: 2021-05-04 08:13:39             🧑  作者: Mango

先决条件:

  • 三角数
  • 四面体数

给定一个值n,任务是打印n项的四面体数列。

例子:

Input: 5
Output: 1  4  10  20  35

Input: 10
Output: 1  4  10  20  35  56  84  120  165  220 

方法1:使用三角数系列:
利用第N四面体数等于前N个三角数之和这一事实可以轻松解决此问题。

让我们看一下三角形和四面体数系列。

To print series upto 5th term:
Triangular Numbers  =  1        3          6             10                  15
Tetrahedral numbers =  1        4          10            20                  35 
                 i.e  (1)    (1 + 3)  (1 + 3 + 6)  (1 + 3 + 6 + 10)  (1 + 3 + 6 + 10 + 35)   

使用公式计算N三角数\frac{N \times (N + 1)}{2}

因此,通过生成三角数并将其与所有先前生成的三角数的和相加,来打印四面体数序列。

下面是上述方法的实现:

C++
// C++ program to generate tetrahedral
// number series
#include 
using namespace std;
  
// function to generate nth triangular
// number
long findTriangularNumber(int n)
{
    return (n * (n + 1)) / 2;
}
  
// function to print tetrahedral number 
// series up to n
void printSeries(int n)
{
    // Initialize prev as 0. It stores 
    // the sum of all previously generated
    // triangular number
    int prev = 0;
    int curr;
  
    // Loop to print series
    for (int i = 1; i <= n; i++) 
    {
        // Find ith triangular number
        curr = findTriangularNumber(i);
  
        // Add ith triangular number to
        // sum of all previously generated
        // triangular number to get ith 
        // tetrahedral number
        curr = curr + prev;
        cout << curr << " ";
  
        // Update sum of all previously 
        // generated triangular number
        prev = curr;
    }
}
  
// Driver code
int main()
{
    int n = 10;
      
    // function call to print series
    printSeries(n);
      
    return 0;
}


Java
// Java program to generate tetrahedral
// number series
import java.io.*;
  
class GFG {
      
    // function to generate nth triangular
    // number
    static long findTriangularNumber(int n)
    {
        return (n * (n + 1)) / 2;
    }
      
    // function to print tetrahedral number 
    // series up to n
    static void printSeries(int n)
    {
        // Initialize prev as 0. It store 
        // the sum of all previously generated
        // triangular number
        long prev = 0;
        long curr;
      
        // Loop to print series
        for (int i = 1; i <= n; i++) 
        {
            // Find ithh triangular number
            curr = findTriangularNumber(i);
      
            // Add ith triangular number to
            // sum of all previously generated
            // triangular number to get ith 
            // tetrahedral number
            curr = curr + prev;
            System.out.print(curr + " ");
      
            // Update sum of all previously 
            // generated triangular number
            prev = curr;
        }
    }
  
    // Driver code
    public static void main (String[] args) 
    {
        int n = 10;
      
        // function call to print series
        printSeries(n);
    }
}


Python3
# Python3 program to generate 
# tetrahedral number series
  
# function to generate nth 
# triangular number
def findTriangularNumber(n):
    return (n * (n + 1)) / 2
  
# function to print tetrahedral 
# number series up to n
def printSeries(n):
  
    # Initialize prev as 0. 
    # It stores the sum of all 
    # previously generated 
    # triangular number
    prev = 0
  
    # Loop to print series
    for i in range(1, n+1): 
      
        # Find ith triangular number
        curr = findTriangularNumber(i)
  
        # Add ith triangular number 
        # to sum of all previously 
        # generated triangular number 
        # to get ith tetrahedral number
        curr = int(curr + prev)
        print(curr, end = ' ')
  
        # Update sum of all previously 
        # generated triangular number
        prev = curr
  
# Driver code
n = 10
      
# function call to
# print series
printSeries(n)
  
# This code is contributed by Mahadev.


C#
// C# program to generate tetrahedral
// number series
using System;
  
public class GFG{
      
    // function to generate nth triangular
    // number
    static long findTriangularNumber(int n)
    {
        return (n * (n + 1)) / 2;
    }
      
    // function to print tetrahedral number 
    // series up to n
    static void printSeries(int n)
    {
        // Initialize prev as 0. It store 
        // the sum of all previously generated
        // triangular number
        long prev = 0;
        long curr;
      
        // Loop to print series
        for (int i = 1; i <= n; i++) 
        {
            // Find ithh triangular number
            curr = findTriangularNumber(i);
      
            // Add ith triangular number to
            // sum of all previously generated
            // triangular number to get ith 
            // tetrahedral number
            curr = curr + prev;
            Console.Write(curr + " ");
      
            // Update sum of all previously 
            // generated triangular number
            prev = curr;
        }
    }
  
    // Driver code
    static public void Main ()
    {
        int n = 10;
      
        // function call to print series
        printSeries(n);
    }
}


PHP


C++
// C++ program to generate series of 
// tetrahedral numbers
#include 
using namespace std;
  
// function to print tetrahedral 
// number series up to n
void printSeries(int n)
{
  
    // loop to print series
    for (int i = 1; i <= n; i++)
    {
        // Calculate and print ith 
        // tetrahedral number
                int num = i * (i + 1) * (i + 2) / 6;
        cout << num << " ";
    }
}
  
// Driver code
int main()
{
    int n = 10;
      
    // function call to print series
    printSeries(n);
      
    return 0;
}


Java
// Java program to generate series of 
// tetrahedral numbers
import java.io.*;
  
class GFG {
      
    // function to print tetrahedral 
    // number series up to n
    static void printSeries(int n)
    {
      
        // loop to print series
        for (int i = 1; i <= n; i++)
        {
            // Calculate and print ith 
            // tetrahedral number
            int num = i * (i + 1) * (i + 2) / 6;
              
            System.out.print(num + " ");
        }
    }
      
    // Driver code
    public static void main (String[] args) 
    {
        int n = 10;
      
        // function call to print series
        printSeries(n);
    }
}


Python3
# Python3 code to print tetrahedral
# numbers series up to n
   
# function to print tetrahedral series up to n
def printSeries(n):
   
    # loop to print series 
    for i in range(1, n + 1):
          
        # Calculate and print ith 
        # Tetrahedral number
        num = i * (i + 1) * (i + 2) // 6
          
        print(num, end =' ')
                    
# Driver code
n = 10
  
# function call to print series
printSeries(n)


C#
// C# program to generate series of 
// tetrahedral numbers
using System;
  
public class GFG{
      
    // function to print tetrahedral 
    // number series up to n
    static void printSeries(int n)
    {
      
        // loop to print series
        for (int i = 1; i <= n; i++)
        {
            // Calculate and print ith 
            // tetrahedral number
            int num = i * (i + 1) * (i + 2) / 6;
              
            Console.Write(num + " ");
        }
    }
      
    // Driver code
    static public void Main ()
    {
        int n = 10;
      
        // function call to print series
        printSeries(n);
    }
}


PHP


输出:
1 4 10 20 35 56 84 120 165 220

时间复杂度: O(n)

方法2:使用四面体数公式:

查找n四面体数的公式: \frac{N\times (N+1)\times (N+2)}{6}

以下是所需的实现:

C++

// C++ program to generate series of 
// tetrahedral numbers
#include 
using namespace std;
  
// function to print tetrahedral 
// number series up to n
void printSeries(int n)
{
  
    // loop to print series
    for (int i = 1; i <= n; i++)
    {
        // Calculate and print ith 
        // tetrahedral number
                int num = i * (i + 1) * (i + 2) / 6;
        cout << num << " ";
    }
}
  
// Driver code
int main()
{
    int n = 10;
      
    // function call to print series
    printSeries(n);
      
    return 0;
}

Java

// Java program to generate series of 
// tetrahedral numbers
import java.io.*;
  
class GFG {
      
    // function to print tetrahedral 
    // number series up to n
    static void printSeries(int n)
    {
      
        // loop to print series
        for (int i = 1; i <= n; i++)
        {
            // Calculate and print ith 
            // tetrahedral number
            int num = i * (i + 1) * (i + 2) / 6;
              
            System.out.print(num + " ");
        }
    }
      
    // Driver code
    public static void main (String[] args) 
    {
        int n = 10;
      
        // function call to print series
        printSeries(n);
    }
}

Python3

# Python3 code to print tetrahedral
# numbers series up to n
   
# function to print tetrahedral series up to n
def printSeries(n):
   
    # loop to print series 
    for i in range(1, n + 1):
          
        # Calculate and print ith 
        # Tetrahedral number
        num = i * (i + 1) * (i + 2) // 6
          
        print(num, end =' ')
                    
# Driver code
n = 10
  
# function call to print series
printSeries(n)

C#

// C# program to generate series of 
// tetrahedral numbers
using System;
  
public class GFG{
      
    // function to print tetrahedral 
    // number series up to n
    static void printSeries(int n)
    {
      
        // loop to print series
        for (int i = 1; i <= n; i++)
        {
            // Calculate and print ith 
            // tetrahedral number
            int num = i * (i + 1) * (i + 2) / 6;
              
            Console.Write(num + " ");
        }
    }
      
    // Driver code
    static public void Main ()
    {
        int n = 10;
      
        // function call to print series
        printSeries(n);
    }
}

的PHP


输出:
1 4 10 20 35 56 84 120 165 220