Verificare dacă un număr este palindrom în C++
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
.
Ce este un număr palindrom?
Un număr palindrom este un număr care este egal cu oglinditul (răsturnatul) său.
Implementarea algoritmului
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;
}
Alte resurse sau bibliografie
DS
Autorul acestei lecții
Dominic Satnoianu
Această lecție a fost redactată de către Dominic Satnoianu.
© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.
Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.
Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.
Comentarii 0