Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n, cn, nr = 0, C = 0, rast = 0;
cin >> n;
cn = n;
while (cn != 0)
{
C = C + 1;
cn = cn / 10;
}
if (C % 2 != 0)
{
while (n != 0)
{
nr = nr * 10 + n % 10;
n = n / 100;
}
while (nr != 0)
{
rast = rast * 10 + nr % 10;
nr = nr / 10;
}
}
else
{
n = n / 10;
while (n != 0)
{
nr = nr * 10 + n % 10;
n = n / 100;
}
while (nr != 0)
{
rast = rast * 10 + nr % 10;
nr = nr / 10;
}
}
cout << rast;
return 0;
}
Explicație:
In prima faza am calculat numarul de cifre al lui n, iar daca acesta este impar, inseamna ca ultima cifra a lui n este impara. Astfel, incepem sa introducem in variabila "nr" toate cifrele lui n aflate pe pozitii impare, dar in ordinea inversa aparitiei lor, adica de la dreapta la stanga. Asadar, trebuie sa calculam rasturnatul numarului astfel format, care va contine toate cifrele de pe pozitii impare in ordinea in care apar, adica de la stanga la dreapta. Daca numarul de cifre al lui n este insa par, atunci ultima cifra a acestuia se afla pe o pozitie para, deci trebuie sa o eliminam. In acest moment, n are un numar impar de cifre, si de aici nu trebuie decat sa procedam exact cum am spus in cazul in care nr de cifre al lui n este impar de la inceput.
Daca ai nelamuriri, nu ezita sa mi le spui :)
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!