Descargar Solución de la galería de códigos de msdn aquí
De La wikipedia :http://es.wikipedia.org/wiki/Cuadrado_m%C3%A1gico
Un cuadrado mágico es una tabla donde se dispone de una serie de números enteros en un cuadrado o matriz de forma tal que la suma de los números por columnas, filas y diagonales principales sea la misma, la constante mágica. Usualmente los números empleados para rellenar las casillas son consecutivos, de 1 a n², siendo n el número de columnas y filas del cuadrado mágico.
Los cuadrados mágicos actualmente no tienen ninguna aplicación técnica conocida que se beneficien de estas características, por lo que sigue recluido al divertimento, curiosidad y al pensamiento matemático. Aparte de esto, en las llamadas ciencias ocultas y más concretamente en la magia tienen un lugar destacado.
using System; using System.Collections.Generic; using System.Text; namespace CuadradoMagico { class Program { public static bool EsCuadradoPerfecto(int[,] matriz) { if (matriz.GetLength(0) != matriz.GetLength(1)) return false; else { int suma1 = 0, suma2 = 0, suma3 = 0, suma4 = 0; for (int i = 0; i < matriz.GetLength(0); i++) { for (int j = 0; j < matriz.GetLength(1); j++) { suma1 += matriz[i, j]; suma2 += matriz[j, i]; if (i == 0) { suma3 += matriz[j, j]; suma4 += matriz[j, matriz.GetLength(1) - 1 - j]; } } if (suma1 != suma2 || suma1 != suma3 || suma1 != suma4) return false; suma1 = 0; suma2 = 0; } return true; } } static void Main(string[] args) { int[,] cuadrado ={ { 1, 8, 10, 15 }, { 12, 13, 3, 6 }, { 7, 2, 16, 9 }, { 14, 11, 5, 4 } }; Console.WriteLine("La matriz cuadrada: "); for (int i = 0; i < cuadrado.GetLength(0); i++) { for (int j = 0; j < cuadrado.GetLength(1); j++) Console.Write(cuadrado[i, j].ToString() + '\t'); Console.WriteLine(); } if (EsCuadradoPerfecto(cuadrado)) Console.WriteLine("Es un cuadrado magico."); else Console.WriteLine("No es un cuadrado magico."); Console.ReadLine(); } } }
Descargar Solución de la galería de códigos de msdn aquí
No hay comentarios:
Publicar un comentario