Contact și feedback

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.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

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

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

Cuprinsul lecției

Se încarcă…

Citește și

Verifică dacă un număr aparține șirului Fibonacci în C++Combinatorică în C++: permutări, aranjamente, combinări și alteleVerifică dacă un număr dat este o putere de 2 în C++Cum să citești și să afișezi în fișiere în C++Instrucțiunea for (structuri repetitive)Citirea și afișarea matricelor în C++Află secolul unui an citit de la tastatură în C++Tipul struct în C++. Ce sunt structurile de date neomogeneCalculul combinărilor de n luate câte k (nCk) în C++Divide et Impera (metodă de programare C++)Cea mai lungă secvență de elemente crescătoare în C++Instrucțiunea break (structuri repetitive)Suma divizorilor unui număr în C++Aria unui triunghi folosind coordonatele acestora în C++Numărul aranjamentelor în C++ (formula aranjamentelor)Oglinditul unui număr în C++Ciurul lui Eratostene în C++Verifică dacă un număr este par sau impar fără modulo în C++Numărul de divizori primi ai unui număr în C++Numere triunghiulare. Verificarea unui număr triunghiularSuma elementelor unui vector recursiv în C++Valoarea absolută (modulul) unui număr în C++Vectorii în C++: citire și afișareCăutare binară în C++Numărul combinărilor în C++ (formula combinărilor)Citește un șir de caractere cu spații în C++CMMDC recursiv a două numere naturale în C++Interclasarea a doi vectori în C++Maximul și minimul a două valori în C++Șiruri de caractere în C++. Tot ce trebuie să știiInversarea unui șir de caractere în C++Distanța dintre două puncte în C++Aria și circumferința unui cerc în C++Cel mai semnificativ bit în C++Matrice pătratice în C++. Diagonala principală și secundarăRidicarea la putere în timp logaritmic în C++. Exponențiere rapidăCe înseamnă variabilă globală și locală în C++?Operații cu numere mari în C++ - Toate funcțiile explicateInstrucțiunea de decizie în C++: if, else, switch, caseCifra maximă a unui număr recursiv în C++Verifică dacă o literă este vocală în C++Funcții în C++. Ce sunt subprogrameleAl N-lea termen dintr-o progresie aritmeticăVerifică dacă o literă este mică sau mare în C++Verifică dacă un caracter este literă în C++Instrucțiunea continue (structuri repetitive)Afișarea divizorilor primi ai unui număr în C++Verificare dacă un număr este palindrom în C++Cel mai puțin semnificativ bit în C++Cifrele unui număr. Prelucrarea cifrelor unui număr în C++Suma numerelor naturale dintr-un interval dat în C++Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortInterschimbarea a două variabile în C++ (3 metode)Inversarea unui vector în C++Comentarii în C++Codul ASCII (tabel complet)Maximul și minimul a n valori în C++Cel mai mic număr cu suma cifrelor N în C++Cel mai mare divizor comun (CMMDC) a două numere în C++Verifică dacă trei puncte sunt coliniare C++Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleDe ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Cum să afișezi partea întreagă a unui număr real în C++Cel mai frecvent element dintr-un șir în C++Algoritm recursiv pentru căutare binară (clasa a X-a)Materia pentru olimpiada de informatică - tot ce trebuie să știiRadicalul unui număr în C++ (rădăcina pătrată)Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorTutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Ce este o variabilă unsigned în C++?Numărul minim de peroane pentru o gară în C++Generarea șirului Fibonacci generalizat în C++Transformarea unui număr din baza 10 în baza 2 în C++CMMMC a două numere în C++ (cel mai mic multiplu comun)Recursivitate în C++Ce înseamnă endl în C++?Transformarea unui număr din baza 2 în baza 10 în C++Oglinditul recursiv al unui număr în C++Afișarea elementelor unui vector recursiv în C++Verifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Numărul de apariții al unui număr într-un vector în C++Instrucțiunea do while (structuri repetitive)Suma 1 + 2 + 3 + ... + N în C++Vectori de frecvență (de apariții) în C++Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Transformarea unei litere mici în literă mare în C++Cum să calculezi instant 2 la puterea N în C++Al N-lea termen dintr-o progresie geometricăȘirul lui Fibonacci în C++Copiuțe: Cifrele unui numărDo while vs while în C++ - Care e diferența?Pointer în C++. Variabile de tipul char * (char steluță)Câte numere naturale sunt într-un interval dat? (C++)Indicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Verificare dacă șir de caractere este palindrom în C++Cifra maximă și minimă a unui număr în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleMediana unui șir de valori în C++Maximul și minimul unui vector în C++Transformarea unei litere mari în literă mică în C++Structuri repetitive (while, do while, for, etc)Al N-lea termen Fibonacci în C++Instrucțiunea while (structuri repetitive)Funcții predefinite în C++ (matematice, șiruri de caractere)Vectorii în C++: declarare și parcurgereMaximul și minimul a trei valori în C++Verificarea unui an bisect în C++Suma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)Prima cifră a unui număr în C++Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicNumărul permutărilor în C++ (formula permutărilor)Verifică dacă un caracter este cifră în C++Verificare număr prim în C++ (Clasa a IX-a)Rădăcina cubică a unui număr în C++ (cube root)Ce este o funcție void în C++?Cifra de control a unui numărIndicatorul lui Euler în C++Complexitatea unui algoritm (timp și spațiu) în C++Numărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Bordarea unei matrice în C++Aflarea sumei primelor N sume GaussFactorialul unui număr în C++Numărul de cifre ale factorialului unui numărNumărul de divizori al unui număr în C++

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont