Informatică, întrebare adresată de andriesboss92, 9 ani în urmă

Elementele tabloului bidimensional din figura alăturată, cu 5 linii şi
5 coloane, sunt toate numerele naturale cuprinse între 1 şi 25
aşezate în spirală, începând cu primul element al primei linii şi
continuând în sens invers trigonometric ca în figura alăturată.
Care este ultima cifră a produsului numerelor impare aflate sub
diagonala secundară (exclusiv diagonala secundară), în cazul
unui tablou bidimensional cu 4 linii şi 4 coloane generat după
aceeaşi regulă?

Anexe:

Răspunsuri la întrebare

Răspuns de blindseeker90
1
#include <iostream>
using namespace std;

int main(){
int n,i,j,x0=0,y0=0,k=1,a[100][100],pivot,produs_impar=1;
cout<<"Introduceti dimensiunea matricei:";
cin>>n;
if(n%2==0){
pivot=n/2-1;
}
else{
pivot=n/2;
}
while(x0<=pivot){
for(j=y0;j<n-y0;j++){
a[x0][j]=k;
k++;
}
for(i=x0+1;i<n-x0;i++){
a[i][n-1-y0]=k;
k++;
}
for(j=n-2-y0;j>=y0;j--){
a[n-1-x0][j]=k;
k++;
}
for(i=n-2-x0;i>=x0+1;i--){
a[i][y0]=k;
k++;
}
x0++;
y0++;
}
cout<<"Matricea spirala este:\n";
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<a[i][j]<<" ";
if(i+j>n-1&&a[i][j]%2==1){
produs_impar=produs_impar*a[i][j];
}
}
cout<<endl;
}
cout<<"Rezultatul este: "<<produs_impar%10;
return 0;
}

blindseeker90: Programul este general, iti genereaza matricea spirala si ultima cifra pentru orice dimensiune a matricei
andriesboss92: Bun si cum fac sa-mi genereze ultima cifra a produsului numerelor impare alfate sub diagonala secundara ( exclusiv diagonala secundara), in cazul unui tablou bidimensional cu 4 linii si 4 coloane generat dupa aceeasi regula?
andriesboss92: Eu, dupa ce am dat dimensiunea matricei 5, mi-a facut spirala corect si ultima cifra ca fiind 3. Dar daca fac matricea cu dimensiunea 4, ultima cifra a produsului va fi 5. Deci, cum ar trebui sa imbin sa iasa corect cerinta?
blindseeker90: Daca introduci dimensiunea matricei ca fiind 4 atunci cand iti cere inputul, atnci iti va aparea ultima cifra 5. Daca vrei sa fie exact ca in cerinta, comenteaza partea in care input pentru n, si scrie direct n=4
andriesboss92: pai da, dar in cerinta zice asa... o matrice 5 linii si 5 coloane.... etc. ... Care este ultima cifră a produsului numerelor impare aflate sub diagonala secundară , în cazul unui tablou bidimensional cu 4 linii şi 4 coloane generat după aceeaşi regulă?
andriesboss92: Aaaa :)) scuze... am citit gresit cerinta >D Mersi pt problema :*
andriesboss92: Auzi, poti sa-mi explici te rog cum sta treaba cu foru-urile astea?: for(j=n-2-y0;j>=y0;j--) ... for(i=n-2-x0;i>=x0+1;i--) ... de ce nu sunt puse ca celelalte?
andriesboss92: De ce apare: j=n-2-y0;j>=y0;j-- si nu j=y0;j<=n;2;y0;j++ .. ?! Nu inteleg ce rol au aceste foruri
blindseeker90: Daca te uiti la spirala cum este formata: toate numerele in ordine consecutiva formeaza un patrat pe marginea exterioara matricei, apoi dupa ce se termina patratul, incepe un alt patrat in interior, si asa mai departe pana ajunge la o singura celula in centru
blindseeker90: Acele foruri acest rol au: completeaza cele 4 linii ale patratului, x0 si y0 sunt folosite pentru a muta patratul in interior. Cand sunt ambele 0, face patratul din exterior, apoi cand sunt 1 il face pe cel interior cu o linie
Alte întrebări interesante