VA ROOOG MULT!!! AM NEVOIE URGENT!
#780 CmmdcSum
Cerinţa
Se dă o matrice cu n linii şi n coloane şi elemente numere naturale. Calculaţi cel mai mare divizor comun al sumei elementelor de deasupra diagonalei principale și al sumei elementelor de sub diagonala principală.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n*n numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran numărul D, reprezentând valoarea calculată.
Restricţii şi precizări
1 ≤ n ≤ 20
elementele matricei vor fi mai mici decât 1.000.000
cel puţin un element situat deasupra diagnalei principale şi cel puţin un element situat sub diagonala principală sunt nenule
Exemplu
Date de intrare
4
8 3 5 6
5 5 6 5
3 8 6 5
8 4 8 8
Date de ieșire
6
Explicație
Suma elementelor de sub diagonala principală este 36 iar cea a elementelor de deasupra diagonalei principale este 30. Cel mai mare divizor comun pentru 36 şi 30 este 6.
Răspunsuri la întrebare
Răspuns de
3
#include <iostream>
using namespace std;
int main()
{
int n,a[21][21],i,j;
long int S=0,K=0;
cout<<"n=";
cin>>n;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
}
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
S+=a[i][j];
K+=a[j][i];
}
int r=S%K;
while(r)
{
S=K;
K=r;
r=S%K;
}
cout<<"cel mai mic divizor comun este:"<<K;
return 0;
}
using namespace std;
int main()
{
int n,a[21][21],i,j;
long int S=0,K=0;
cout<<"n=";
cin>>n;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
}
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
S+=a[i][j];
K+=a[j][i];
}
int r=S%K;
while(r)
{
S=K;
K=r;
r=S%K;
}
cout<<"cel mai mic divizor comun este:"<<K;
return 0;
}
stassahul:
E correct, dar te rog in viitor sa eviti mesaje ce nu se cer in problema, de ex cout << "n=" sau cout << "cel mai mic divizor comun este:"<<K; in loc de a 2-a foloseste cout << K. Problema e ca asa tip de probleme este controlat pe siteuri speciale ca pbinfo/infoarena si daca exista mesaje deprisos, programul chiar daca este correct se puncteaza cu 0 puncte solutia.
Răspuns de
2
#include <iostream>
using namespace std;
int n;
int cmmdc(int a, int b);
int main()
{
cin >> n;
int x,Sum1=0,Sum2=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
cin >> x;
if(j>i) Sum1+=x;
if(j<i) Sum2+=x;
}
cout << cmmdc(Sum1,Sum2);
return 0;
}
int cmmdc(int a, int b)
{
if(b==0)
return a;
else
return cmmdc(b,a%b);
}
using namespace std;
int n;
int cmmdc(int a, int b);
int main()
{
cin >> n;
int x,Sum1=0,Sum2=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
cin >> x;
if(j>i) Sum1+=x;
if(j<i) Sum2+=x;
}
cout << cmmdc(Sum1,Sum2);
return 0;
}
int cmmdc(int a, int b)
{
if(b==0)
return a;
else
return cmmdc(b,a%b);
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Engleza,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă