N-ésimo término de la serie 1, 11, 55, 239, 991,….

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

1, 11, 55, 239, 991, … 

Ejemplos
 

Input: N = 3
Output: 55

Input: N = 4 
Output: 239 

Enfoque-1: Al escribir la representación binaria de los números dados, se puede observar un patrón. 
 

1 = 1 
11 = 1011 
55 = 110111 
239 = 11101111 


.

Por lo tanto, para N = 1, la respuesta siempre será uno. Para el N-ésimo término, la string binaria será (n-1)*1 + (0) + (n)*1 , que se convierte a valor decimal para obtener la respuesta. 
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to find the N-th term
// in 1, 11, 55, 239, 991, ....
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the decimal value
// of a binary number
int binaryToDecimal(string n)
{
    string num = n;
    int dec_value = 0;
 
    // Initializing base value to 1, i.e 2^0
    int base = 1;
 
    int len = num.length();
    for (int i = len - 1; i >= 0; i--) {
        if (num[i] == '1')
            dec_value += base;
        base = base * 2;
    }
 
    return dec_value;
}
 
// find the binary representation
// of the N-th number in sequence
int numberSequence(int n)
{
    // base case
    if (n == 1)
        return 1;
 
    // answer string
    string s = "";
 
    // add n-1 1's
    for (int i = 1; i < n; i++)
        s += '1';
 
    // add 0
    s += '0';
 
    // add n 1's at end
    for (int i = 1; i <= n; i++)
        s += '1';
 
    int num = binaryToDecimal(s);
 
    return num;
}
 
// Driver Code
int main()
{
    int n = 4;
 
    cout << numberSequence(n);
 
    return 0;
}

Java

// Java program to find the N-th
// term in 1, 11, 55, 239, 991, ....
import java.util.*;
 
class GFG
{
 
// Function to return the decimal
// value of a binary number
static int binaryToDecimal(String n)
{
    String num = n;
    int dec_value = 0;
 
    // Initializing base
    // value to 1, i.e 2^0
    int base = 1;
 
    int len = num.length();
    for (int i = len - 1; i >= 0; i--)
    {
        if (num.charAt(i) == '1')
            dec_value += base;
        base = base * 2;
    }
 
    return dec_value;
}
 
// find the binary representation
// of the N-th number in sequence
static int numberSequence(int n)
{
    // base case
    if (n == 1)
        return 1;
 
    // answer string
    String s = "";
 
    // add n-1 1's
    for (int i = 1; i < n; i++)
        s += '1';
 
    // add 0
    s += '0';
 
    // add n 1's at end
    for (int i = 1; i <= n; i++)
        s += '1';
 
    int num = binaryToDecimal(s);
 
    return num;
}
 
// Driver Code
public static void main(String args[])
{
    int n = 4;
 
    System.out.println(numberSequence(n));
}
}
 
// This code is contributed
// by Arnab Kundu

Python 3

# Python 3 program to find the N-th term
# in 1, 11, 55, 239, 991, ....
  
# Function to return the decimal value
# of a binary number
def binaryToDecimal(n):
 
    num = n
    dec_value = 0
  
    # Initializing base value to 1, i.e 2^0
    base = 1
  
    l = len(num)
    for i in range(l - 1,-1, -1):
        if (num[i] == '1'):
            dec_value += base
        base = base * 2
  
    return dec_value
  
# find the binary representation
# of the N-th number in sequence
def numberSequence(n):
     
    # base case
    if (n == 1):
        return 1
  
    # answer string
    s = ""
  
    # add n-1 1's
    for i in range(1, n):
        s += '1'
  
    # add 0
    s += '0'
  
    # add n 1's at end
    for i in range(1,n+1):
        s += '1'
  
    num = binaryToDecimal(s)
  
    return num
  
# Driver Code
if __name__ == "__main__":
     
    n = 4
  
    print(numberSequence(n))
 
# this code is contributed by ChitraNayal

C#

// C# program to find the N-th
// term in 1, 11, 55, 239, 991, ....
using System;
 
class GFG
{
 
// Function to return the decimal
// value of a binary number
static int binaryToDecimal(String n)
{
    String num = n;
    int dec_value = 0;
 
    // Initializing base
    // value to 1, i.e 2^0
    int base_ = 1;
 
    int len = num.Length;
    for (int i = len - 1; i >= 0; i--)
    {
        if (num[i] == '1')
            dec_value += base_;
        base_ = base_ * 2;
    }
 
    return dec_value;
}
 
// find the binary representation
// of the N-th number in sequence
static int numberSequence(int n)
{
    // base case
    if (n == 1)
        return 1;
 
    // answer string
    String s = "";
 
    // add n-1 1's
    for (int i = 1; i < n; i++)
        s += '1';
 
    // add 0
    s += '0';
 
    // add n 1's at end
    for (int i = 1; i <= n; i++)
        s += '1';
 
    int num = binaryToDecimal(s);
 
    return num;
}
 
// Driver Code
public static void Main()
{
    int n = 4;
 
    Console.WriteLine(numberSequence(n));
}
}
 
// This code is contributed
// by Subhadeep

PHP

<?php
// PHP program to find the N-th term
// in 1, 11, 55, 239, 991, ....
 
// Function to return the decimal
// value of a binary number
function binaryToDecimal($n)
{
    $num = $n;
    $dec_value = 0;
 
    // Initializing base value
    // to 1, i.e 2^0
    $base = 1;
 
    $len = strlen($num);
    for ($i = $len - 1; $i >= 0; $i--)
    {
        if ($num[$i] == '1')
            $dec_value += $base;
        $base = $base * 2;
    }
 
    return $dec_value;
}
 
// find the binary representation
// of the N-th number in sequence
function numberSequence($n)
{
    // base case
    if ($n == 1)
        return 1;
 
    // answer string
    $s = "";
 
    // add n-1 1's
    for ($i = 1; $i < $n; $i++)
        $s .= '1';
 
    // add 0
    $s .= '0';
 
    // add n 1's at end
    for ($i = 1; $i <= $n; $i++)
        $s .= '1';
 
    $num = binaryToDecimal($s);
 
    return $num;
}
 
// Driver Code
$n = 4;
 
echo numberSequence($n);
 
// This code is contributed by mits
?>

Javascript

<script>
// Javascript program to find the N-th term
// in 1, 11, 55, 239, 991, ....
 
// Function to return the decimal value
// of a binary number
function binaryToDecimal(n)
{
    let num = n;
    let dec_value = 0;
 
    // Initializing base value to 1, i.e 2^0
    let base = 1;
 
    let len = num.length;
    for (let i = len - 1; i >= 0; i--) {
        if (num[i] == '1')
            dec_value += base;
        base = base * 2;
    }
 
    return dec_value;
}
 
// find the binary representation
// of the N-th number in sequence
function numberSequence(n)
{
    // base case
    if (n == 1)
        return 1;
 
    // answer string
    let s = "";
 
    // add n-1 1's
    for (let i = 1; i < n; i++)
        s += '1';
 
    // add 0
    s += '0';
 
    // add n 1's at end
    for (let i = 1; i <= n; i++)
        s += '1';
 
    let num = binaryToDecimal(s);
 
    return num;
}
 
// Driver Code
let n = 4;
 
document.write(numberSequence(n));
 
// This code is contributed by subhammahato348.
</script>
Producción: 

239

 

Complejidad de tiempo : O (N), ya que estamos usando un bucle para atravesar N veces.

Espacio auxiliar : O (N), ya que estamos usando espacio adicional para la string.

Enfoque-2: La serie tiene una fórmula general de 4 N -2 N -1 que se usa para obtener el N-ésimo término en la serie. 
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to find the N-th term
// in 1, 11, 55, 239, 991, ....
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the N-th term
int numberSequence(int n)
{
    // calculates the N-th term
    int num = pow(4, n) - pow(2, n) - 1;
 
    return num;
}
 
// Driver Code
int main()
{
    int n = 4;
 
    cout << numberSequence(n);
 
    return 0;
}

Java

// Java program to find the N-th
// term in 1, 11, 55, 239, 991, ....
class GFG
{
// Function to find the N-th term
static int numberSequence(int n)
{
    // calculates the N-th term
    int num = (int)(Math.pow(4, n) -
                    Math.pow(2, n)) - 1;
 
    return num;
}
 
// Driver Code
public static void main(String args[])
{
    int n = 4;
 
    System.out.println(numberSequence(n));
}
}
 
// This code is contributed
// by Arnab Kundu

Python 3

# Python 3 program to find N-th term
# in 1, 11, 55, 239, 991, ....
 
# calculate Nth term of series
def numberSequence(n) :
 
    # calculates the N-th term
    num = pow(4, n) - pow(2, n) - 1
 
    return num
 
# Driver Code
if __name__ == "__main__" :
 
    n = 4
     
    print(numberSequence(n))
 
# This code is contributed by ANKITRAI1

C#

// C# program to find the N-th
// term in 1, 11, 55, 239, 991, ....
using System;
 
class GFG
{
// Function to find the N-th term
static int numberSequence(int n)
{
    // calculates the N-th term
    int num = (int)(Math.Pow(4, n) -
                    Math.Pow(2, n)) - 1;
 
    return num;
}
 
// Driver Code
public static void Main()
{
    int n = 4;
 
    Console.WriteLine(numberSequence(n));
}
}
 
// This code is contributed
// by chandan_jnu.

PHP

<?php
// PHP program to find the N-th term
// in 1, 11, 55, 239, 991, ....
 
// Function to find the N-th term
function numberSequence($n)
{
    // calculates the N-th term
    $num = pow(4, $n) -
           pow(2, $n) - 1;
 
    return $num;
}
 
// Driver Code
$n = 4;
 
echo numberSequence($n);
 
// This code is contributed by mits
?>

Javascript

<script>
 
// Javascript program to find the N-th term
// in 1, 11, 55, 239, 991, ....
 
// Function to find the N-th term
function numberSequence(n)
{
    // calculates the N-th term
    let num = Math.pow(4, n) - Math.pow(2, n) - 1;
 
    return num;
}
 
// Driver Code
let n = 4;
 
document.write(numberSequence(n));
 
</script>
Producción: 

239

 

Complejidad de tiempo : O (logN), ya que estamos usando la función pow que costará el tiempo de logN.

Espacio auxiliar : O(1), ya que no estamos utilizando ningún espacio adicional.

Publicación traducida automáticamente

Artículo escrito por Striver 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 *