Cerinţa
Se citesc două numere naturale n și m. Să se decidă dacă cele două numere au cel puțin o cifră comună.
Date de intrare
Programul citește de la tastatură numerele n și m.
Date de ieşire
Programul afișează pe ecran mesajul DA, dacă cele două numere au cel puțin o cifră comună, respectiv NU în caz contrar.
Restricţii şi precizări
1 ≤ n, m ≤ 1.000.000.000
Exemplu
Date de intrare
173954 889205
Date de ieșire
DA
#include
using namespace std;
int main()
{ int x,y,C,ogl1,ogl2,m,n,p,x1,y1,q,w,z;
cin>>x>>y;
C=0;
while(x!=0 && y!=0)
{
p=1;
q=1;
ogl1=0;
ogl2=0;
x1=x;
y1=y;
while(x!=0)
{ p=p*10;
x=x/10;
}
while(y!=0)
{
q=q*10;
y=y/10;
}
z=x1*q+y1;
w=y1*p+x1;
m=z;
n=w;
while(m!=0)
{
ogl1=ogl1*10+m%10;
m=m/10;
}
while(n!=0)
{
ogl2=ogl2*10+n%10;
n=n/10;
}
if(z==ogl1 || w==ogl2)
C=C+1;
cin>>x>>y;
}
cout< return 0;
}
Răspunsuri la întrebare
#include <iostream>
using namespace std;
short vcn[10], vcm[10]; //vectorii cifrelor lui n si m
int main()
{
int n, m, cif, comune;
cout << "n="; cin >> n;
cout << "m="; cin >> m;
while (n)
{
cif=n%10;
++vcn[cif];
n/=10;
}
while (m)
{
cif=m%10;
++vcm[cif];
m/=10;
}
comune=0;
for (cif=0; cif<10; ++cif)
if (vcn[cif]>0 && vcm[cif]>0) { comune=1; break; }
if (comune==1) cout << "DA";
else cout << "NU";
return 0;
}
metoda2 ------ fara vectori
#include <iostream>
using namespace std;
int main()
{
int n, m, cif, zero=0, unu=0, doi=0, trei=0, patru=0, cinci=0;
int sase=0, sapte=0, opt=0, noua=0, comune=0;
cin >> n >> m;
while (n)
{
cif=n%10;
if (cif==0) zero=1;
if (cif==1) unu=1;
if (cif==2) doi=1;
if (cif==3) trei=1;
if (cif==4) patru=1;
if (cif==5) cinci=1;
if (cif==6) sase=1;
if (cif==7) sapte=1;
if (cif==8) opt=1;
if (cif==9) noua=1;
n=n/10;
}
while (m)
{
cif=m%10;
if (cif==0 && zero==1) { comune=1; break; }
if (cif==1 && unu==1) { comune=1; break; }
if (cif==2 && doi==1) { comune=1; break; }
if (cif==3 && trei==1) { comune=1; break; }
if (cif==4 && patru==1) { comune=1; break; }
if (cif==5 && cinci==1) { comune=1; break; }
if (cif==6 && sase==1) { comune=1; break; }
if (cif==7 && sapte==1) { comune=1; break; }
if (cif==8 && opt==1) { comune=1; break; }
if (cif==9 && noua==1) { comune=1; break; }
}
if (comune) cout << "DA";
else cout << "NU";
return 0;
}