Se consideră o matrice pătratică cu n linii şi n coloane (1≤n≤30), ce memorează numere întregi nenule de cel mult două cifre fiecare. Scrieţi un program C/C++ care citeşte de la tastatură valoarea n şi elementele matricei şi care afişează pe ecran ultima cifră a produsului acelor elemente de pe diagonala secundară care au proprietatea că
sunt valori minime pe coloanele lor. Dacă nu există astfel de elemente în matrice, se va afişa mesajul NU EXISTA.
Exemplu: pentru n=4 şi matricea alăturată se va afişa pe ecran valoarea 1 (3*7=21).
Răspunsuri la întrebare
Răspuns de
5
#include<iostream>
using namespace std;
int v[31][31],n,minim,p;
bool ok;
int main()
{
//se citeste si si matricea
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>v[i][j];
//se initializeaza produsul
p=1;
//se initializeaza o variabila logica care verifica daca exista elemente care indeplinesc conditia data
ok=false;
for(int i=1;i<=n;i++){
//se calculeaza minimul pe fiecare coloana
minim=v[1][i];
for(int j=1;j<=n;j++)
if(v[j][i]<minim)
minim=v[j][i];
//daca minimul se afla pe diagonala secundara, inmultim ultima cifra a sa la produs
if(minim==v[n-i+1][i]){
ok=true;
p=p*(minim%10);
}
}
if(ok==true)
cout<<p%10;
else cout<<"NU EXISTA";
return 0;
}
using namespace std;
int v[31][31],n,minim,p;
bool ok;
int main()
{
//se citeste si si matricea
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>v[i][j];
//se initializeaza produsul
p=1;
//se initializeaza o variabila logica care verifica daca exista elemente care indeplinesc conditia data
ok=false;
for(int i=1;i<=n;i++){
//se calculeaza minimul pe fiecare coloana
minim=v[1][i];
for(int j=1;j<=n;j++)
if(v[j][i]<minim)
minim=v[j][i];
//daca minimul se afla pe diagonala secundara, inmultim ultima cifra a sa la produs
if(minim==v[n-i+1][i]){
ok=true;
p=p*(minim%10);
}
}
if(ok==true)
cout<<p%10;
else cout<<"NU EXISTA";
return 0;
}
Răspuns de
2
#include <bits/stdc++.h>
using namespace std;
int v[31][31], n, p = 1, ok;
int mincol(int col)
{
int sol = INT_MAX;
for(int i = 1; i <= n; i++)
sol = min(sol, v[col][i]);
return sol;
}
int main()
{
cin >> n;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
cin >> v[i][j];
for(int i = 1; i <= n; i++)
if(v[i][n - i + 1] == mincol(i))
p *= v[i][n - i + 1], ok = 1;
if(ok) cout << p % 10;
else cout << "NU EXISTA";
return 0;
}
using namespace std;
int v[31][31], n, p = 1, ok;
int mincol(int col)
{
int sol = INT_MAX;
for(int i = 1; i <= n; i++)
sol = min(sol, v[col][i]);
return sol;
}
int main()
{
cin >> n;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
cin >> v[i][j];
for(int i = 1; i <= n; i++)
if(v[i][n - i + 1] == mincol(i))
p *= v[i][n - i + 1], ok = 1;
if(ok) cout << p % 10;
else cout << "NU EXISTA";
return 0;
}
Alte întrebări interesante
Franceza,
8 ani în urmă
Franceza,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă