👤

Vă rog mult sa ma ajutați am nevoie urgent de rezolvare in C++
Se citesc de la tastatură două numere a și b naturale ce au maximum 18 cifre.
a) Afișați cifrele care să găsesc în numărul a, dar nu se găsesc și în numărul b.
b) Afișați care dintre cele două numere are cel mai multe cifre distincte.
c) Afișați cea mai mare cifră care se regăsește atât în a cât și în b.


Răspuns :

Răspuns:

#include <bits/stdc++.h>

using namespace std;

#define ll long long

int f[10],f1[10];

ll a,b;

int main()

{

cin>>a>>b;

ll ca=a,cb=b;

while(a)

{

f[a%10]++;

a/=10;

}

while(b)

{

f1[b%10]++;

b/=10;

}

/// cerinta a

cout<<"a)"<<'\n';

for(int i=0;i<=9;i++)

if(f[i]!=0 && f1[i]==0)

cout<<i<<' ';

cout<<'\n';

///cerinta b

cout<<"b)"<<'\n';

int cnta=0,cntb=0;

for(int i=0;i<=9;i++)

{

if(f[i]==1)

cnta++;

if(f1[i]==1)

cntb++;

}

if(cnta>=cntb) //daca cele 2 nr au acelasi nr de cifre distincte, l-am scos pe a(poti sa il schimbi tu)

cout<<ca;

else

cout<<cb;

cout<<'\n';

///cerinta c

cout<<"c)"<<'\n';

for(int i=9;i>=0;i--)

if(f[i]!=0 && f1[i]!=0)

{

cout<<i;

break;

}

return 0;

}