Programa para hallar el término N de la serie 0, 0, 2, 1, 4, 2, 6, 3, 8,…

Dado un número N. La tarea es escribir un programa para encontrar el N-ésimo término en la siguiente serie: 
 

0, 0, 2, 1, 4, 2, 6, 3, 8, 4, 10, 5, 12, 6, 14, 7, 16, 8,…..

Ejemplos
 

Input : N = 10
Output : 4

Input : N = 7
Output : 6

Al observar detenidamente, encontrará que la serie es una mezcla de 2 series:
 

  1. Los términos en posiciones impares en la serie dada forman la serie de números pares en orden creciente a partir de 0. Como, 0,2,4,6,..
  2. Los términos en posiciones pares en la serie dada se derivan del término anterior usando la fórmula (anteriorTérmino/2). Es decir, los términos en posiciones pares son la mitad de su término anterior.

Ahora bien, se sabe que todo término en posición impar forma una serie par a partir de 0 y todo término en posición par es la mitad del término en posición impar anterior.
Por lo tanto, primero verifique si el número de entrada N es par o impar. Si es impar, establezca N=(N/2) + 1 (ya que hay dos series que se ejecutan en paralelo) y encuentre el término N usando la fórmula 2*(N-1) (N-1 porque la serie comienza con 0) . 
De manera similar, si N es par, establezca N = N/2, use la fórmula anterior y divida la respuesta por 2.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// CPP program to find N-th term
// in the series
#include <iostream>
#include <math.h>
using namespace std;
 
// Function to find N-th term
// in the series
void findNthTerm(int n)
{  
    // If n is even
    if (n % 2 == 0) {
        n = n / 2;
        n = 2 * (n - 1);
        cout << n / 2 << endl;
    }
    // If n is odd
    else {
        n = (n / 2) + 1;
        n = 2 * (n - 1);
        cout << n << endl;
    }
}
 
// Driver code
int main()
{
    int X = 10;
    findNthTerm(X);
     
    X = 7;
    findNthTerm(X);
     
    return 0;
}

Java

// Java program to find N-th term
// in the series
 
// Function to find N-th term
// in the series
class GFG
{
static void findNthTerm(int n)
{
    // If n is even
    if (n % 2 == 0)
    {
        n = n / 2;
        n = 2 * (n - 1);
        System.out.println(n / 2);
    }
     
    // If n is odd
    else
    {
        n = (n / 2) + 1;
        n = 2 * (n - 1);
        System.out.println(n);
    }
}
 
// Driver code
public static void main(String args[])
{
    int X = 10;
    findNthTerm(X);
     
    X = 7;
    findNthTerm(X);
}
}
 
// This code is contributed by Subhadeep

Python 3

# Python 3 program to find N-th term
# in the series
  
# Function to find N-th term
# in the series
def findNthTerm(n):
     
    # If n is even
    if (n % 2 == 0):
        n = n // 2
        n = 2 * (n - 1)
        print( n // 2)
 
    # If n is odd
    else:
        n = (n // 2) + 1
        n = 2 * (n - 1)
        print(n)
  
# Driver code
if __name__ == "__main__":
    X = 10
    findNthTerm(X);
      
    X = 7;
    findNthTerm(X)

C#

// C# program to find N-th term
// in the series
using System;
 
// Function to find N-th term
// in the series
class GFG
{
static void findNthTerm(int n)
{
    // If n is even
    if (n % 2 == 0)
    {
        n = n / 2;
        n = 2 * (n - 1);
        Console.Write(n / 2);
    }
     
    // If n is odd
    else
    {
        n = (n / 2) + 1;
        n = 2 * (n - 1);
        Console.Write(n);
    }
}
 
// Driver code
public static void Main()
{
    int X = 10;
    findNthTerm(X);
    Console.Write("\n");
    X = 7;
    findNthTerm(X);
}
}
 
// This code is contributed
// by Smitha

PHP

<?php
// PHP program to find N-th
// term in the series
 
// Function to find N-th
// term in the series
function findNthTerm($n)
{
    // If $n is even
    if ($n % 2 == 0)
    {
        $n = $n / 2;
        $n = 2 * ($n - 1);
        echo $n / 2 . "\n";
    }
     
    // If $n is odd
    else
    {
        $n = (int)($n / 2) + 1;
        $n = 2 * ($n - 1);
        echo $n . "\n";
    }
}
 
// Driver code
$X = 10;
findNthTerm($X);
     
$X = 7;
findNthTerm($X);
     
// This code is contributed
// by ChitraNayal
?>

Javascript

<script>
// JavaScript program to find N-th term
// in the series
 
// Function to find N-th term
// in the series
function findNthTerm(n)
{   
    // If n is even
    if (n % 2 == 0) {
        n = Math.floor(n / 2);
        n = 2 * (n - 1);
        document.write(Math.floor(n / 2) + "<br>");
    }
    // If n is odd
    else {
        n = Math.floor(n / 2) + 1;
        n = 2 * (n - 1);
        document.write(n + "<br>");
    }
}
   
// Driver code
 
    let X = 10;
    findNthTerm(X);
       
    X = 7;
    findNthTerm(X);
       
   
// This code is contributed by Surbhi Tyagi
 
</script>
Producción: 

4
6

 

Complejidad de tiempo: O(1), el código se ejecutará en un tiempo constante.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal 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 *