Informatică, întrebare adresată de mierlaaurie, 8 ani în urmă

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 cu 5 este 125, iar 5 concatenat cu 12 este 512.

Exemplu
Intrare

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

3. Poate cineva sa imi corecteze aceasta rezolcare?
#include
#include
using namespace std;

int main()
{ int x,y,C,ogl1,ogl2,m,n,uc1,p,q,uc2,w,z;
cin>>x>>y;
C=0;
p=0;
q=0;
ogl1=0;
ogl2=0;
while(x!=0 && y!=0)
{
while(x!=0)
{
uc1=x%10;
p=p+1;
x=x/10;
}
while(y!=0)
{
uc2=y%10;
q=q+1;
y=y/10;
}
z=x*pow(10,p)+y;
w=y*pow(10,q)+x;
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;
else
C=C;
cin>>x>>y;
}
cout< return 0;
}
. Pentru ca imi numara toate numerele chiar si pe cele care nu sunt palndrom si nu stiu ce gresesc


boiustef: ok
mierlaaurie: de ce e p*10?
boiustef: p va fi puterea, ceea ce doreai sa-ti dae pow
mierlaaurie: ok
mierlaaurie: dar de ce e si la cout>
boiustef: sterge asta.... eu testam sa vad valoarea curenta...
mierlaaurie: ok
mierlaaurie: am postat si cealalta problema
boiustef: cout << p << "\n"; asta stergi, mai erau si altele cout, dar le-am sters
mierlaaurie: la problema asta cand o incarc pe site nu imi da doar 80 de puncte

Răspunsuri la întrebare

Răspuns de boiustef
0

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

   int x, y, C=0, ogl1,ogl2,m,n, p, q, w, z, x1, y1;

   cin>>x>>y;

   while(x!=0 && y!=0)

{

   p=1; x1=x;

   q=1; y1=y;

   ogl1=0;

   ogl2=0;

   while(x!=0)

   {

       p=p*10;

       x=x/10;

   }

   cout << p << "\n";

   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;

   else

       C=C;

   cin>>x>>y;

   }

   cout<< C;

    return 0;

}


Alte întrebări interesante