ioana_martin98

Untitled

May 22nd, 2022
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.54 KB | None | 0 0
  1. --------------------------783 rezolvare cu comentarii
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. /*Se dă o matrice cu n linii şi n coloane şi elemente numere naturale.
  7. Să se determine suma elementelor de pe cele două diagonale vecine cu diagonala principală.
  8. */
  9. int main()
  10. {
  11.     int n,m,a[101][101],i,j,s=0;
  12.     cin>>n;
  13.     for(i=1; i<=n; i++)
  14.         for(j=1; j<=n; j++)
  15.             cin>>a[i][j];
  16.     for(i=1; i<=n-1; i++)
  17.         s+=a[i][i+1]+a[i+1][i];
  18. /*
  19. 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
  20. inainte:
  21.     //1
  22.     for(i=1; i<=n-1; i++)
  23.         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
  24.     //2
  25.     for(i=2; i<=n; i++)
  26.         s+=a[i][i-1];
  27.         //a[i][i-1]<=>a[i+1][i] pentru ca in for-ul nou incepem de la 1 in loc de n, adica:
  28.         //i=2 => a[2][1] = a[i][i-1]  -inainte
  29.         //i=1 => a[2][1] = a[i+1][i]  -acum -> se duce ca al doilea operand in for-ul de mai sus
  30.  
  31. */
  32.     cout<<s;
  33.     return 0;
  34. }
  35.  
  36. ----------------------- 783 rezolvare fara comentarii, pt pbInfo
  37. #include <iostream>
  38.  
  39. using namespace std;
  40.  
  41. /*Se dă o matrice cu n linii şi n coloane şi elemente numere naturale.
  42. Să se determine suma elementelor de pe cele două diagonale vecine cu diagonala principală.
  43. */
  44. int main()
  45. {
  46.     int n,m,a[101][101],i,j,s=0;
  47.     cin>>n;
  48.     for(i=1; i<=n; i++)
  49.         for(j=1; j<=n; j++)
  50.             cin>>a[i][j];
  51.     for(i=1; i<=n-1; i++)
  52.         s+=a[i][i+1]+a[i+1][i];
  53.     cout<<s;
  54.     return 0;
  55. }
  56.  
  57. !!! daca nu a mers cea de mai sus:
  58. ----------------- 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).
  59. #include <iostream>
  60.  
  61. using namespace std;
  62.  
  63. /*Se dă o matrice cu n linii şi n coloane şi elemente numere naturale.
  64. Să se determine suma elementelor de pe cele două diagonale vecine cu diagonala principală.
  65. */
  66. int a[101][101];
  67. int main()
  68. {
  69.     int n,m,i,j,s=0;
  70.     cin>>n;
  71.     for(i=1; i<=n; i++)
  72.         for(j=1; j<=n; j++)
  73.             cin>>a[i][j];
  74.     for(i=1; i<=n; i++)
  75.         for(j=1; j<=n; j++)
  76.             if(i==j)
  77.                 s += a[i][j+1] + a[i][j-1];
  78.     cout<<s;
  79.     return 0;
  80. }
  81. ---------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
  82. #include <iostream>
  83.  
  84. using namespace std;
  85.  
  86. /*Se dă o matrice cu n linii şi n coloane şi elemente numere naturale.
  87. Să se determine suma elementelor de pe cele două diagonale vecine cu diagonala principală.
  88. */
  89. int main()
  90. {
  91.     int n,m,a[101][101],i,j,s=0;
  92.     cin>>n;
  93.     for(i=1; i<=n; i++)
  94.         for(j=1; j<=n; j++)
  95.             cin>>a[i][j];
  96.     for(i=1; i<=n; i++)
  97.         for(j=1; j<=n; j++)
  98.             if(j-1==i || j+1==i)
  99.                 s+=a[i][j];
  100.     cout<<s;
  101.     return 0;
  102. }
  103.  
Add Comment
Please, Sign In to add comment