Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.
Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.
Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.
Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.
Meniu shortcuturi | ? |
Căutare probleme sau utilizatori | / |
Navigare printre rezultatele căutării | ↑, ↓ |
Meniu de contact și feedback | CTRL + Shift + F |
Ieșire din meniuri | Esc |
Setări editor | CTRL + Shift + S |
Schimbare stil editor | CTRL + Shift + E |
Șabloane de cod | CTRL + Shift + 1/2/3 |
Golire editor | CTRL + Shift + 4 |
Dându-se un număr natural n
, să se determine dacă este sau nu palindrom.
Exemplu. Pentru n = 1239
, răspunsul este NU
, pe când, pentru n = 1221
, răspunsul este DA
.
Un număr palindrom este un număr care este egal cu oglinditul (răsturnatul) său.
Cea mai ușoară metodă de determinare dacă un număr este palindrom sau nu este să calculăm oglinditul într-o altă variabilă, după care să verificăm dacă acest oglindit este sau nu egal cu numărul nostru inițial.
Vom crea un alt număr, oglindit
, inițial egal cu 0
. Vom parcurge cifrele lui n
de la coadă și pe rând le vom adăuga în oglindit
. Astfel, vom putea forma numărul foarte ușor. Iată o animație prin care se calculează oglinditul numărului n = 34931
.
Variabilă | Valoare |
---|---|
n | 03344993311 |
oglindit | 139430 |
Rezolvarea în C++ este următoarea:
#include <iostream>
using namespace std;
int main()
{
//Declarare și citire
int n, copie;
cin >> n;
copie = n; //Copiem valoarea lui n pentru că, în calcularea oglinditului, o să își piardă valoarea
//Calcularea oglinditului
int oglindit = 0;
do { //Parcurgem cifrele lui n cu do while
int cifra = n % 10; //Luăm ultima cifră a lui n
oglindit = oglindit * 10 + cifra; //Adăugăm la coada lui oglindit, cifra curentă.
n = n / 10; //Eliminăm ultima cifră din n
} while(n != 0);
//Afișarea oglinditului
n = copie; //Resetăm valoarea lui n;
if(n == copie) {
cout << "DA";
} else {
cout << "NU";
}
return 0;
}