Genere una array única de longitud N con la suma de todos los subarreglos divisible por N

Dado un número entero N , la tarea es hacer una array de elementos únicos de longitud N tal que todos los subarreglos sumen módulo N igual a cero.
 

Ejemplos: 

Entrada: N = 6 
Salida: 6 12 18 24 30 36 
Explicación: 
Dado que todos los elementos son múltiplos de 6, por lo tanto, todos los subarreglos suman una suma divisible por 6.
Entrada: N = 4 
Salida: 4 8 12 16 
 

Enfoque: 
podemos observar que para que todos los subarreglos sean divisibles por N , los elementos del arreglo deben ser múltiplos de N .
Ilustración: 

Para N = 4 , si consideramos los elementos del arreglo {4, 8, 12, 16}, todos los subarreglos posibles son: 
{4}, {8}, {12}, {16}, {4, 8}, { 8, 12}, {12, 16}, {4, 8, 12}, {8, 12, 16}, {4, 8, 12, 16} 
Por lo tanto, todos los subarreglos tienen una suma divisible por N. 
 

Por lo tanto, para resolver el problema, solo necesitamos imprimir {N, 2*N, 3*N, ….., N*N} para obtener la array deseada. 
A continuación se muestra la implementación del enfoque anterior:
 

C++

// C++ implementation of the
// above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to print the required
// array
void makeArray(int a[], int n)
{
    // Print the array
    for (int i = 1; i <= n; i++)
        cout << i * n << " ";
}
 
// Driver Program
int main()
{
    int N = 6;
    int arr[N];
    makeArray(arr, N);
}

Java

// Java program for the above approach
class GFG{
 
// Function to print the required
// array
static void makeArray(int a[], int n)
{
     
    // Print the array
    for(int i = 1; i <= n; i++)
       System.out.print(i * n + " ");
}
 
// Driver code
public static void main(String[] args)
{
    int N = 6;
    int arr[] = new int[N];
     
    makeArray(arr, N);
}
}
 
// This code is contributed by Pratima Pandey

Python3

# Python3 implementation of the
# above approach
 
# Function to print the
# required array
def makeArray(n):
     
    # Print Array
    for i in range(n):
        print((i + 1) * n, end =" ")
 
 
# Driver code
n = 6;
makeArray(n);

C#

// C# program for the above approach
using System;
class GFG{
 
// Function to print the required
// array
static void makeArray(int []a, int n)
{
     
    // Print the array
    for(int i = 1; i <= n; i++)
    Console.Write(i * n + " ");
}
 
// Driver code
public static void Main()
{
    int N = 6;
    int []arr = new int[N];
     
    makeArray(arr, N);
}
}
 
// This code is contributed by Code_Mech

Javascript

<script>
    // javascript program for the above approach
   
// Function to print the required
// array
 
function makeArray(n)
{
       
    // Print the array
    for(var i = 1; i <= n; i++)
    document.write(i * n + " ");
}
   
// Driver code
  
    var N = 6;
       
    makeArray(N);
 
   
 
</script>
Producción: 

6 12 18 24 30 36

 

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

Publicación traducida automáticamente

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