Genere una secuencia impar-par alternativa que tenga la suma de todos los pares consecutivos como un cuadrado perfecto

Dado un número entero N , la tarea es imprimir una secuencia de longitud N que consta de números pares e impares alternos en orden creciente de modo que la suma de dos términos consecutivos sea un cuadrado perfecto .

Ejemplos:

Entrada: N = 4
Salida: 1 8 17 32
Explicación:
1 + 8 = 9 = 3 2
8 + 17 = 25 = 5 2
17 + 32 = 49 = 7 2

Entrada: N = 2
Salida: 1 8

Enfoque: El problema dado se puede resolver basándose en la observación de los ejemplos anteriores, que para un número entero N , la secuencia será de la forma 1, 8, 17, 32, 49 y así sucesivamente. Por lo tanto, el término N se puede calcular mediante la siguiente ecuación :

2(n+1)^2 + n\%2

Por lo tanto, para resolver el problema, recorre el rango [1, N] para calcular e imprimir cada término de la secuencia usando la fórmula anterior.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ Program to implement
// the above approach
 
#include <iostream>
using namespace std;
 
// Function to print the
// required sequence
void findNumbers(int n)
{
    int i = 0;
    while (i <= n) {
 
        // Print ith odd number
        cout << 2 * i * i + 4 * i
                    + 1 + i % 2
             << " ";
        i++;
    }
}
 
// Driver Code
int main()
{
    int n = 6;
    findNumbers(n);
}

Java

// Java program to implement
// the above approach
import java.util.*;
 
class GFG{
     
// Function to print the
// required sequence
static void findNumbers(int n)
{
    int i = 0;
    while (i <= n)
    {
 
        // Print ith odd number
        System.out.print(2 * i * i + 4 * i +
                         1 + i % 2 + " ");
        i++;
    }
}
 
// Driver code
public static void main (String[] args)
{
    int n = 6;
     
    // Function call
    findNumbers(n);
}
}
 
// This code is contributed by offbeat

Python3

# Python3 program to implement
# the above approach
  
# Function to print the
# required sequence
def findNumbers(n):
     
    i = 0
    while (i <= n):
  
        # Print ith odd number
        print(2 * i * i + 4 * i +
              1 + i % 2, end = " ")
               
        i += 1
     
# Driver Code
n = 6
 
findNumbers(n)
 
# This code is contributed by sanjoy_62

C#

// C# program to implement
// the above approach
using System;
  
class GFG{
      
// Function to print the
// required sequence
static void findNumbers(int n)
{
    int i = 0;
    while (i <= n)
    {
         
        // Print ith odd number
        Console.Write(2 * i * i + 4 * i +
                      1 + i % 2 + " ");
 
        i++;
    }
}
  
// Driver code
public static void Main ()
{
    int n = 6;
      
    // Function call
    findNumbers(n);
}
}
  
// This code is contributed by sanjoy_62

Javascript

<script>
 
 
// Javascript Program to implement
// the above approach
 
// Function to print the
// required sequence
function findNumbers(n)
{
    var i = 0;
    while (i <= n) {
 
        // Print ith odd number
        document.write(2 * i * i + 4 * i + 1 + i % 2+" ");
        i++;
    }
}
 
// Driver Code
var n = 6;
findNumbers(n);
 
 
</script>
Producción: 

1 8 17 32 49 72 97

 Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

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