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

Buna ziua!
La problema #2206 minimpar de pe pbinfo primesc 60 de pct cu primele doua teste gresite. Iata codul
#include

using namespace std;
int main()
{
unsigned long long n,i,gg = 0;
cin >> n;
unsigned long long copie = n,copie1 = 0;
while (copie)
{
copie1 = copie1 * 10 + copie % 10;
copie = copie / 10;
}
while (copie1)
{
if (gg == 0)
{
if (copie1 % 2 == 1)
cout << copie1 % 10;
else
{
cout << copie1 % 10 + 1;
gg = 1;
}
}
else
{
cout << 1;
}
copie1 = copie1 / 10;
}
return 0;
}
Stie cineva unde am gresit?
Multumesc anticipat?

Răspunsuri la întrebare

Răspuns de lifeoftheparty
2

cel mai probabil, problema apare atunci cand sunt numere care se termina in 0. de exemplu, pentru 10, copia1 (inversul) va fi 1 si atunci se va afisa doar 1, nu si 11.


lifeoftheparty: revin cu o solutie de 100 p.
lifeoftheparty: #include
using namespace std;
int main ()
{ unsigned long long n, p=1,aux;
unsigned ok=0;
cin>>n;
aux=n;
while (aux>9)
{ p=p*10; aux/=10;}
while (p)
{ if (ok==0)
if (n/p%10%2!=0) cout< else {cout< else cout<<1;
p=p/10;}
return 0;
}
lifeoftheparty: if (ok==0) if (n/p%10%2!=0) cout<
Alte întrebări interesante