👤
a fost răspuns

Se citesc perechi de numere naturale până la citirea a două valori nule. Să se determine câte dintre perechile X Y au proprietatea că prin concatenarea lui X cu Y sau a lui Y cu X să se obțină un palindrom.
Programul citește de la tastatură perechi de numere naturale. Citirea se încheie la introducerea a două valori nule.
se vor citi cel mult 40 de perechi de numere;
ultima pereche citită nu se va lua în considerare;
toate numerele citite vor fi mai mici decât 1.000.000;
toate numerele citite sunt nenule, cu excepția ultimelor două;
prin concatenarea a două numere înțelegem “lipirea” lor; de exemplu, 12 concatenat cu 5 este 125, iar 5 concatenat cu 12 este 512.

Intrare

14 516
14 416
13 13
123 321
156 2651
456 674
0 0
Ieșire

3

Problema este de pe pbinfo, are codul #1410, dar imi da doar 80 din 100p.
Poate cineva sa-mi spuna ce e gresit la codul meu ?(Stiu lucra cu functii, dar nu si cu vectori)

#include

#include
using namespace std;

int oglindit (int x);
int contacnat (int a, int b);

int main()
{
int a=1 , b=1, contor=0;
cin >> a >> b;
while (a!=0 and b!=0)
{
if (oglindit(contacnat(a,b))==contacnat(a,b))
contor++;
else
if (oglindit(contacnat(b,a))==contacnat(b,a))
contor++;
cin >> a >> b;
}
cout << contor;
return 0;
}

int oglindit(int x)
{
int o=0;
while (x)
{
o=o*10+x%10;
x/=10;
}
return o;
}

int contacnat(int a, int b)
{
int clonab;
int c=1;
clonab=b;
while (clonab)
{
c*=10;
clonab/=10;
}
a=a*c;
a=a+b;
return a;
}