Encontrar el término n-ésimo de la serie 3, 13, 42, 108, 235…

Dado un número n, encuentra el término n-ésimo en la serie 3, 13, 42, 108, 235…
Ejemplos: 
 

Input : 3
Output : 42

Input : 4
Output : 108

Restricciones: 
1 <= T <= 100 
1 <= N <= 100
Enfoque ingenuo: 
la serie representa básicamente sumas de cubos de números naturales y número de términos multiplicados por 2. El primer término es la suma del número único. El segundo término es la suma de dos números, y así sucesivamente. 
Ejemplos: 
 

n = 2
2nd term equals to sum of 1st term and 8 i.e
A2 = A1 + 23 + n*2
   = 1 + 8 + 4
   = 13

Similarly,
A3 = A2 + 33 + n*2
   = 9 + 27 + 6
   = 42 and so on..

Una solución sencilla es sumar los primeros n números naturales al cubo y el número de términos multiplicado por 2. 
 

C++

// C++ program to find n-th term of
// series 3, 13, 42, 108, 235…
#include <bits/stdc++.h>
using namespace std;
 
// Function to generate a fixed number
int magicOfSequence(int N)
{
    int sum = 0;
    for (int i = 1; i <= N; i++)
        sum += (i*i*i + i*2);
    return sum;   
}
 
// Driver Method
int main()
{
    int N = 4;
    cout << magicOfSequence(N) << endl;
    return 0;
}

Java

// Java Program to Finding n-th term
// of series 3, 13, 42, 108, 235 ...
 
class GFG {
 
// Function to generate
// a fixed number
public static int magicOfSequence(int N)
{
    int sum = 0;
    for (int i = 1; i <= N; i++)
        sum += (i * i * i + i * 2);
    return sum;
}
 
// Driver Method
public static void main(String args[])
{
    int N = 4;
    System.out.println(magicOfSequence(N));
}
}
 
// This code is contributed by Jaideep Pyne

Python3

# Python3 program to
# find n-th term of
# series 3, 13, 42, 108, 235…
 
# Function to generate
# a fixed number
def magicOfSequence(N) :
 
    sum = 0
    for i in range(1, N + 1) :
        sum += (i * i * i + i * 2)
    return sum;
 
# Driver Code
N = 4
print(magicOfSequence(N))
 
# This code is contributed by vij.

C#

// C# Program to Finding
// n-th term of series
// 3, 13, 42, 108, 235 ...
using System;
 
class GFG
{
     
// Function to generate
// a fixed number
public static int magicOfSequence(int N)
{
    int sum = 0;
    for (int i = 1; i <= N; i++)
        sum += (i * i * i + i * 2);
    return sum;
}
 
// Driver Code
static public void Main ()
{
    int N = 4;
    Console.WriteLine(magicOfSequence(N));
}
}
 
// This code is contributed
// by ajit

PHP

<?php
// PHP  program to find n-th term of
// series 3, 13, 42, 108, 235…
 
// Function to generate a fixed number
 
function magicOfSequence($N)
{
    $sum = 0;
    for ($i = 1; $i <= $N; $i++)
        $sum += ($i*$i*$i + $i*2);
    return $sum;
}
 
// Driver Method
 
    $N = 4;
    echo  magicOfSequence($N);
 
 
// This code is contributed by m_kit   
?>

Javascript

<script>
// JavaScript program to find n-th term of
// series 3, 13, 42, 108, 235…
 
// Function to generate a fixed number
function magicOfSequence( N)
{
    let sum = 0;
    for (let i = 1; i <= N; i++)
        sum += (i*i*i + i*2);
    return sum;   
}
 
// Driver Function
 
    let N = 4;
    document.write(magicOfSequence(N));
     
// This code contributed by Rajput-Ji
 
</script>
Producción: 

120

 

La complejidad temporal de esta solución es O(n).
Enfoque eficiente: 
sabemos que la suma de los cubos de los primeros n números naturales es (n*(n+1)/2) 2 . También sabemos que si multiplicamos el i-ésimo término por 2 y lo sumamos todo, obtenemos la suma de n términos como 2*n.
Entonces nuestro resultado es (n*(n+1)/2) 2 + 2*n.
Ejemplo : 
 

Para n = 4 la suma por la fórmula es 
(4 * (4 + 1 ) / 2)) ^ 2 + 2*4 
= (4 * 5 / 2) ^ 2 + 8 
= (10) ^ 2 + 8 
= 100 + 8 
= 108
Para n = 6 , la suma por la fórmula es 
(6 * (6 + 1 ) / 2)) ^ 2 + 2*6 
= (6 * 7 / 2) ^ 2 + 12 
= (21) ^ 2 + 12 
= 441 + 12 
= 453 
 

C++

// A formula based C++ program to find sum
// of series with cubes of first n natural
// numbers
#include <iostream>
using namespace std;
 
int magicOfSequence(int N)
{
    return (N * (N + 1) / 2) + 2 * N;
}
 
// Driver Function
int main()
{
    int N = 6;
    cout << magicOfSequence(N);
    return 0;
}

Java

// A formula based Java program to find sum
// of series with cubes of first n natural
// numbers
class GFG {
     
    static int magicOfSequence(int N)
    {
        return (N * (N + 1) / 2) + 2 * N;
    }
     
    // Driver Function
    public static void main(String[] args)
    {
        int N = 6;
        System.out.println(magicOfSequence(N));
    }
}
 
// This code is contributed by Smitha.

Python 3

# A formula based Python program to find sum
# of series with cubes of first n natural
# numbers
def magicOfSequence(N):
 
    return (N * (N + 1) / 2) + 2 * N
 
# Driver Function
N = 6
print(int(magicOfSequence(N)))
 
# This code is contributed by Smitha.

C#

// A formula based C# program to find sum
// of series with cubes of first n natural
// numbers
using System;
 
class GFG {
     
    static int magicOfSequence(int N)
    {
        return (N * (N + 1) / 2) + 2 * N;
    }
     
    // Driver Function
    public static void Main()
    {
        int N = 6;
        Console.Write(magicOfSequence(N));
    }
}
 
// This code is contributed by Smitha.

PHP

<?php
// A formula based PHP program
// to find sum of series with
// cubes of first n natural numbers
function magicOfSequence($N)
{
    return ($N * ($N + 1) / 2) + 2 * $N;
}
 
// Driver Code
$N = 6;
echo magicOfSequence($N) . "\n";
 
// This code is contributed by mits
?>

Javascript

<script>
// A formula based Java program to find sum
// of series with cubes of first n natural
// numbers
 
    function magicOfSequence( N)
    {
        return (N * (N + 1) / 2) + 2 * N;
    }
 
    // Driver Function    
    let N = 6;
    document.write(magicOfSequence(N));
 
// This code is contributed by 29AjayKumar 
</script>
Producción: 

33

 

Complejidad de tiempo: O(1)

Complejidad espacial : O (1) ya que el espacio constante se usa para variables
 

Publicación traducida automáticamente

Artículo escrito por Rajput-Ji y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *