Informatică, întrebare adresată de deea768, 8 ani în urmă

numerele trebuie să fie diferite si pătrate perfecte
toate sa aiba aceeași sumă pe orizontală verticala si diagonala

Anexe:

deea768: Nu se face asa
deea768: deci numerele trebuie s fie diferite ( ex 1 2 3 4 5 6 7 8 9) si pe tot e porțile sa dea aceeași suma si nr trebuie să fie pătrate perfecte
anndrero: Ma refeream la un exemplu concret de matrice care respecta cerintele problemei, caci nu gasesc un set corespunzator de date de test.
anndrero: Cum suna cerinta problemei? Realizare program C++ care sa verifice daca matricea are proprietatea ceruta?
deea768: Nu e nicio cerinta
deea768: E un pătrat magic
deea768: adk
deea768: nu are o rezolvare anume
anndrero: Deci tu de ce fel de ajutor ai nevoie? De numere propriu-zise?
anndrero: Scuze, acum am vazut ca de fapt se mentiona intro replica de mai sus ca e vb de un exemlu de astfel de matrice.

Răspunsuri la întrebare

Răspuns de anndrero
0

#include <iostream>

#include <cmath>

using namespace std;

 

int pp(int x)

{

    if (sqrt(x)==(int)(sqrt(x)))

        return 1;

    else

        return 0;

}

 

int main()

{

    int n,i,j,a[101][101],S_ref=0,S1,S2,S3,ok1=1,ok2;

    cin>>n;

    for (i=1;i<=n;i++)

        for (j=1;j<=n;j++)

            cin>>a[i][j];

    i=1;

    do{

        j=1;

        do{

            if (pp(a[i][j])==0)

                ok1=0;

            j++;

        }

        while (ok1==1 && j<=n);

        i++;

        }

    while (ok1==1 && i<=n);

    if (ok1)

    {

        S3=0;

        ok2=1;

        for (i=1;i<=n;i++)

            S_ref=S_ref+a[i][i];

        for (i=1;i<=n;i++){

            S1=0;S2=0;

            for (j=1;j<=n;j++)

                {

                    S1=S1+a[i][j];

                    S2=S2+a[j][i];

                    if (i+j==n+1)

                        S3=S3+a[i][j];

                }

            if (S1!=S_ref || S2!=S_ref)

                ok2=0;

        }

        if (ok2==1 && S3!=S_ref)

            ok2=0;

    }

    if (ok2==1)

        cout<<"Matrice OK";

    else

        cout<<"Not OK";

    return 0;

}

Alte întrebări interesante