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>
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