Cerința
Se consideră o matrice cu m
linii și n
coloane, numere naturale. Folosind metoda Divide et Impera, determinați suma numerelor pare din matrice.
Date de intrare
Programul citește de la tastatură numerele m
și n
, iar apoi cele m * n
elemente ale matricei.
Date de ieșire
Programul va afișa pe ecran numărul S
, reprezentând suma numerelor pare din matrice.
Restricții și precizări
1 ≤ m, n ≤ 100
- numerele din matrice vor fi mai mici decât
1.000.000
Exemplu
Intrare
3 5 1 2 3 4 5 2 4 6 1 7 1 3 4 5 9
Ieșire
22
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema MatrDivImp1:
#include <iostream>
using namespace std;
int a[101][101], m, n;
long long sum(int l1,int c1,int l2,int c2)
{
if (l2<l1 || c2<c1) return 0;
if (l1==l2 && c1==c2)
if (a[l1][c1]%2==0)
return a[l1][c1];
else
return 0;
else
{
int lm=(l1+l2)/2;
int cm=(c1+c2)/2;
long long s=0;
s=s+sum(l1,c1,lm,cm);
s=s+sum(l1,cm+1,lm,c2);
s=s+sum(lm+1,c1,l2,cm);
s=s+sum(lm+1,cm+1,l2,c2);
return s;
}
}
int main()
{
cin>>m>>n;
for (int i=1;i<=m;i++)
for (int j=1;j<=n;j++)
cin>>a[i][j];
cout<<sum(1,1,m,n);
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3165 MatrDivImp1
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3165 MatrDivImp1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!