C++(varianta de rezolvare pentru incepatori)
In matricea cu m linii si n coloane sa se afle cate linii simetrice are, o linie fiind simetrica daca elementele egal departate de caepetele liniei respective sunt egale.
1 3 0 3 1
5 9 1 9 5
4 9 7 3 2
Se va afisa : primele doua linii sunt simetrice
Răspunsuri la întrebare
Răspuns de
6
#include<iostream>
using namespace std;
int main()
{
int a[100][100],n,m,i,j,ok,k=0;
cout<<"m="; cin>>m;
cout<<"n="; cin>>n;
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];
} //pana aici avem declarare si citire
for (i=1;i<=m;i++)
{
ok=1;
for (j=1;j<=n;j++)
if (a[i][j]!=a[i][n-j+1])
ok=0;
if (ok==1)
k++;
}
cout<<"Sunt "<<k<<" linii simetrice.";
}
Rezolvarea merge pe urmatorul principiu: Luam fiecare linie la rand si presupunem ca este simentrica, initializand variabila ok cu 1. Daca gasim un caz in care un element nu este egal cu simentricul sau, vom initializa variabilaok cu 0. La final vom testa valoarea variabilei ok, daca aceasta este tot 1 atunci contorul k creste.
Pentru a compara doua elemente simentrice se va folosi relatia:
a[i][j]!=a[i][n-j+1]
-i-ul ramane deschimbat deoarece este vorba de aceeasi linie
elementul de pe pozitia j are simentricul pe pozitia n-j+1. Ex:
a[1][2]=3 (a[i][j])
a[1][5-2+1]=a[1][4]=3 ( a[i][n-j+1] -j-ul este tot 2)
using namespace std;
int main()
{
int a[100][100],n,m,i,j,ok,k=0;
cout<<"m="; cin>>m;
cout<<"n="; cin>>n;
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];
} //pana aici avem declarare si citire
for (i=1;i<=m;i++)
{
ok=1;
for (j=1;j<=n;j++)
if (a[i][j]!=a[i][n-j+1])
ok=0;
if (ok==1)
k++;
}
cout<<"Sunt "<<k<<" linii simetrice.";
}
Rezolvarea merge pe urmatorul principiu: Luam fiecare linie la rand si presupunem ca este simentrica, initializand variabila ok cu 1. Daca gasim un caz in care un element nu este egal cu simentricul sau, vom initializa variabilaok cu 0. La final vom testa valoarea variabilei ok, daca aceasta este tot 1 atunci contorul k creste.
Pentru a compara doua elemente simentrice se va folosi relatia:
a[i][j]!=a[i][n-j+1]
-i-ul ramane deschimbat deoarece este vorba de aceeasi linie
elementul de pe pozitia j are simentricul pe pozitia n-j+1. Ex:
a[1][2]=3 (a[i][j])
a[1][5-2+1]=a[1][4]=3 ( a[i][n-j+1] -j-ul este tot 2)
Alte întrebări interesante
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Chimie,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă