Se le da una array de orden N*N . La tarea es encontrar la array resultante sumando la imagen especular de la array dada con la array misma.
Ejemplos :
Input : mat[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} Output : 4 4 4 10 10 10 16 16 16 Explanation: Resultant Matrix = {{1, 2, 3}, {{3, 2, 1}, {4, 5, 6}, + {6, 5, 4}, {7, 8, 9}} {9, 8, 7}} Input : mat[][] = {{1, 2}, {3, 4}} Output : 3 3 7 7
Al encontrar la imagen especular de la array, la fila de cada elemento permanecerá igual, pero el valor de sus columnas se reorganizará. Para cualquier elemento A ij su nueva posición en la imagen especular será A i(nj) . Después de obtener la imagen especular de la array, agréguela a la array original e imprima el resultado.
Puntos a cuidar:
- La indexación de la array comenzará desde 0, 0 y terminará en n-1, n-1, por lo tanto, la posición de cualquier elemento A ij será A i (n-1-j).
- Al imprimir el resultado, tenga cuidado con el formato de salida adecuado
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find sum of matrix and // its mirror image #include <bits/stdc++.h> #define N 4 using namespace std; // Function to print the resultant matrix void printSum(int mat[][N]) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cout << setw(3) << mat[i][N - 1 - j] + mat[i][j] << " "; } cout << "\n"; } } // Driver Code int main() { int mat[N][N] = { { 2, 4, 6, 8 }, { 1, 3, 5, 7 }, { 8, 6, 4, 2 }, { 7, 5, 3, 1 } }; printSum(mat); return 0; }
Java
// Java program to find sum of // matrix and its mirror image import java.io.*; class GFG { static int N = 4; // Function to print the // resultant matrix static void printSum(int mat[][]) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { System.out.print((mat[i][N - 1 - j] + mat[i][j]) + " "); } System.out.println(); } } // Driver Code public static void main (String[] args) { int mat[][] = { { 2, 4, 6, 8 }, { 1, 3, 5, 7 }, { 8, 6, 4, 2 }, { 7, 5, 3, 1 } }; printSum(mat); } } // This code is contributed by anuj_67
Python3
# Python 3 program to find sum of matrix # and its mirror image N = 4 # Function to print the resultant matrix def printSum(mat): for i in range(N): for j in range(N): print('{:>3}'.format(mat[i][N - 1 - j] + mat[i][j]), end =" ") print("\n", end = "") # Driver Code if __name__ == '__main__': mat = [[2, 4, 6, 8], [1, 3, 5, 7], [8, 6, 4, 2], [7, 5, 3, 1]] printSum(mat) # This code is contributed by # Surendra_Gangwar
C#
// C# program to find sum of // matrix and its mirror image using System; class GFG { static int N = 4; // Function to print the // resultant matrix static void printSum(int [,]mat) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { Console.Write((mat[i, N - 1 - j] + mat[i, j]) + " "); } Console.WriteLine(); } } // Driver Code public static void Main () { int [,]mat = { { 2, 4, 6, 8 }, { 1, 3, 5, 7 }, { 8, 6, 4, 2 }, { 7, 5, 3, 1 } }; printSum(mat); } } // This code is contributed by shs..
PHP
<?php // PHP program to find sum of // matrix and its mirror image // Function to print the // resultant matrix function printSum($mat) { for ($i = 0; $i < 4; $i++) { for ($j = 0; $j < 4; $j++) { echo ($mat[$i][4 - 1 - $j] + $mat[$i][$j]) . " " ; } echo "\n"; } } // Driver Code $mat = array(array(2, 4, 6, 8 ), array(1, 3, 5, 7), array(8, 6, 4, 2), array(7, 5, 3, 1)); printSum($mat); // This code is contributed // by Akanksha Rai ?>
Javascript
<script> // Javascript program to find sum of matrix and // its mirror image var N = 4 // Function to print the resultant matrix function printSum(mat) { for (var i = 0; i < N; i++) { for (var j = 0; j < N; j++) { document.write( (mat[i][N - 1 - j] + mat[i][j]) + " "); } document.write("<br>"); } } // Driver Code var mat = [ [ 2, 4, 6, 8 ], [ 1, 3, 5, 7 ], [ 8, 6, 4, 2 ], [ 7, 5, 3, 1 ] ]; printSum(mat); </script>
10 10 10 10 8 8 8 8 10 10 10 10 8 8 8 8
Complejidad temporal : O(N 2 ) para una array de entrada dada de tamaño N*N
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por Shivam.Pradhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA