Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - --------------------------783 rezolvare cu comentarii
 - #include <iostream>
 - using namespace std;
 - /*Se dă o matrice cu n linii şi n coloane şi elemente numere naturale.
 - Să se determine suma elementelor de pe cele două diagonale vecine cu diagonala principală.
 - */
 - int main()
 - {
 - int n,m,a[101][101],i,j,s=0;
 - cin>>n;
 - for(i=1; i<=n; i++)
 - for(j=1; j<=n; j++)
 - cin>>a[i][j];
 - for(i=1; i<=n-1; i++)
 - s+=a[i][i+1]+a[i+1][i];
 - /*
 - in loc de 2 for-uri, for i=1,n-1 si for i=2,n, facem unul singur, de la 1 la n-1
 - inainte:
 - //1
 - for(i=1; i<=n-1; i++)
 - s+=a[i][i+1]; //se pune ca prim operand in for-ul de mai sus, ramane la fel pentru ca indicele i e tot de la 1 la n
 - //2
 - for(i=2; i<=n; i++)
 - s+=a[i][i-1];
 - //a[i][i-1]<=>a[i+1][i] pentru ca in for-ul nou incepem de la 1 in loc de n, adica:
 - //i=2 => a[2][1] = a[i][i-1] -inainte
 - //i=1 => a[2][1] = a[i+1][i] -acum -> se duce ca al doilea operand in for-ul de mai sus
 - */
 - cout<<s;
 - return 0;
 - }
 - ----------------------- 783 rezolvare fara comentarii, pt pbInfo
 - #include <iostream>
 - using namespace std;
 - /*Se dă o matrice cu n linii şi n coloane şi elemente numere naturale.
 - Să se determine suma elementelor de pe cele două diagonale vecine cu diagonala principală.
 - */
 - int main()
 - {
 - int n,m,a[101][101],i,j,s=0;
 - cin>>n;
 - for(i=1; i<=n; i++)
 - for(j=1; j<=n; j++)
 - cin>>a[i][j];
 - for(i=1; i<=n-1; i++)
 - s+=a[i][i+1]+a[i+1][i];
 - cout<<s;
 - return 0;
 - }
 - !!! daca nu a mers cea de mai sus:
 - ----------------- 783 alta optiune, in care parcurg intreaga matrice si daca i==j (adica daca sunt pe DP), ma duc cu o coloana mai in dreapta si cu o coloana mai in stanga, uita-te pe exemplul din poza de pe discord, pt vecinul 1 aveam j=2..5 si pt vec.2 j=1,4. ATENTIE, am declarat matricea globala pentru a fi umpluta de 0-uri pentru ca la i=1;j=1, avem s+=a[1][2] + a[1][0] (si a[1][0] nu continea nimic la noi, fiindca nu am folosit notarea de la 0, deci umplem matricea cu 0-uri pentru a avea un 0 si pe pozitia aceea necitita de noi. evident poti sa declari tot in int main si doar sa initializezi a[1][0]=0 inainte/dupa ce citesti toate elem matricei).
 - #include <iostream>
 - using namespace std;
 - /*Se dă o matrice cu n linii şi n coloane şi elemente numere naturale.
 - Să se determine suma elementelor de pe cele două diagonale vecine cu diagonala principală.
 - */
 - int a[101][101];
 - int main()
 - {
 - int n,m,i,j,s=0;
 - cin>>n;
 - for(i=1; i<=n; i++)
 - for(j=1; j<=n; j++)
 - cin>>a[i][j];
 - for(i=1; i<=n; i++)
 - for(j=1; j<=n; j++)
 - if(i==j)
 - s += a[i][j+1] + a[i][j-1];
 - cout<<s;
 - return 0;
 - }
 - ---------783 alta optiune, asa cum am observat ca elem diagon. vecine diagonalei principale sunt a[i][i+1] si a[i+1][i], atunci se obs ca pt vec. 1 j=i+1 si pt vec. 2 j=i-1, deci putem parcurge intreaga matrice, si daca suntem pe un element al caror indici respecta una din reguli, il adun la S
 - #include <iostream>
 - using namespace std;
 - /*Se dă o matrice cu n linii şi n coloane şi elemente numere naturale.
 - Să se determine suma elementelor de pe cele două diagonale vecine cu diagonala principală.
 - */
 - int main()
 - {
 - int n,m,a[101][101],i,j,s=0;
 - cin>>n;
 - for(i=1; i<=n; i++)
 - for(j=1; j<=n; j++)
 - cin>>a[i][j];
 - for(i=1; i<=n; i++)
 - for(j=1; j<=n; j++)
 - if(j-1==i || j+1==i)
 - s+=a[i][j];
 - cout<<s;
 - return 0;
 - }
 
                    Add Comment                
                
                        Please, Sign In to add comment