Dev - C++ - Cuadro Mágico

 
Vista:

Cuadro Mágico

Publicado por José (16 intervenciones) el 21/11/2019 18:16:17
Necesito este programa por favor, muchas gracias!

Programa que dado el orden de un cuadrado mágico y los valores de cada una de las celdas indique si el cuadrado mágico es correcto. Puedes considerar que el valor de “n” no será superior a 10.
Un cuadrado mágico es una cuadrícula de 3 x 3, de 4 x 4, de 5 x 5, o en general, de n x n, en la que se acomodan ciertos números que cumplen que la suma de cualquier renglón y la suma de cualquier columna y la suma de cualquiera de las dos diagonales principales es siempre la misma.
Si el cuadrado es de 3 x 3 (orden 3), entonces tendrá 9 casillas y los números que se acomodan en él son todos los números del 1 al 9. Si el cuadrado es de 4 x 4 (orden 4), entonces tendrá 16 casillas y los números que se acomodan en él son del 1 al 16.
En general, si el cuadrado es de n x n, entonces tendrá “n” cuadrada casillas y los números que acomodaremos en él serán del 1 a n².
La suma resultante se denomina constante mágica. Una forma de calcular la constante mágica es empleando la siguiente fórmula: n (n² +1) / 2
Cuadro Mágico:
8 3 4
1 5 9
6 7 2

Ejecuciones:
Ejemplo:
Para el siguiente cuadrado mágico la constante mágica es 15 → 3 (9 +1) / 2 = 15
8
3
4
1
5
9
6
7
2

Ejemplo:
n? 3
8 3 4
1 5 9
6 7 2
Los valores SI corresponden a un cuadrado mágico
n? 4
7 12 1 14
2 13 8 11
16 3 10 5
9 6 15 4
Los valores SI corresponden a un cuadrado mágico
n? 3
9 3 4
1 5 8
6 7 2
Los valores NO corresponden a un cuadrado mágico
n? 0
Fin del programa
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Cuadro Mágico

Publicado por Alfil (1444 intervenciones) el 21/11/2019 23:57:28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
 
using namespace std;
 
int main()
{
    int sz;
 
    cout << "\nOrden del cuadrado: ";
    cin >> sz;
 
    const int constMagica = (sz * ( sz * sz + 1 )) / 2;
    int matriz[sz][sz];
 
    cout << "\nRellenar cuadrado (1 al " << sz * sz << "):\n";
    for( int i = 0; i < sz; i++ )
        for( int j = 0; j < sz; j++ ) {
            cout << "[" << i << "][" << j << "]: ";
            cin >> matriz[i][j];
        }
 
    cout << "\nImprimir cuadrado:\n\n";
    for( int i = 0; i < sz; i++ ) {
        cout << " | ";
        for( int j = 0; j < sz; j++ )
            cout << matriz[i][j] << " ";
 
        cout << "| " << endl;
    }
 
    bool esMagico = true;
    int i = 0;
    while( i < sz && esMagico == true ) {
        int suma = 0;
        for( int j = 0; j < sz; j++ ) {
            suma += matriz[i][j];
        }
        if( suma != constMagica ) esMagico = false;
        i++;
    }
 
    if( !esMagico ) {
        cout << "\nLos valores no corresponden a un cuadrado magico" << endl;
        return 0;
    }
 
    int j = 0;
    while( j < sz && esMagico == true ) {
        int suma = 0;
        for( int i = 0; i < sz; i++ ) {
            suma += matriz[i][j];
        }
        if( suma != constMagica ) esMagico = false;
        j++;
    }
 
    if( !esMagico )  cout << "\nLos valores no corresponden a un cuadrado magico" << endl;
    else cout << "\nLos valores SI corresponden a un cuadrado magico" << endl;
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Cuadro Mágico

Publicado por ale (1 intervención) el 31/10/2020 00:58:15
MUCHAS GRACIAS QUE BUEN CODIGO !!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Cuadro Mágico

Publicado por Rodrigo (539 intervenciones) el 31/10/2020 02:09:20
Parece que hay que comprobar las diagonales tambien
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar