先决条件:
- 三角数
- 四面体数
给定一个值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个三角数
因此,通过生成三角数并将其与所有先前生成的三角数的和相加,来打印四面体数序列。
下面是上述方法的实现:
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个四面体数的公式:
以下是所需的实现:
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