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

Autentifică-te pentru a putea comenta.

Autentifică-te