Cerința
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.
Date de intrare
Programul citește de la tastatură perechi de numere naturale. Citirea se încheie la introducerea a două valori nule.
Date de ieșire
Programul va afișa pe ecran numărul C
, reprezentând valoarea cerută.
Restricții și precizări
- 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 cu5
este125
, iar5
concatenat cu12
este512
.
Exemplu
Intrare
14 516 14 416 13 13 123 321 156 2651 456 674 0 0
Ieșire
3
Explicație
Perechile care respectă regula sunt:
14 416
: 41614
este palindrom;
123 321
: 123321
este palindrom; la fel și 321123
este palindrom;
156 2651
: 1562651
este palindrom.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Numere12:
#include <iostream>
#include <cassert>
using namespace std;
int main()
{
int cnt = 0;
long long a , b;
cin >> a >> b;
while(a != 0 && b != 0)
{
long long x = a, y = b;
long long pa = 1, pb = 1;
while(x)
pa *= 10, x /= 10;
while(y)
pb *= 10, y /= 10;
long long p, q , ogl;
p = q = a * pb + b, ogl = 0;
while(p != 0)
ogl = 10 * ogl + p % 10, p /= 10;
if(ogl == q)
cnt ++;
else
{
p = q = b * pa + a, ogl = 0;
while(p != 0)
ogl = 10 * ogl + p % 10, p /= 10;
if(ogl == q)
cnt ++;
}
cin >> a >> b;
}
cout << cnt << endl;
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1410 Numere12
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1410 Numere12 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!