Grade 9 · Digits of a numberCitește în română
Palindrome number
Original: Număr palindrom
O(n)C++1741 lines2 examples
The idea
A number is a palindrome if it reads the same from left to right and from right to left, i.e. it is equal to its reverse. We work on a copy, because the loop destroys the number.
Original description (Romanian)
Un număr este palindrom dacă se citește la fel de la stânga la dreapta și de la dreapta la stânga, adică este egal cu oglinditul său. Lucrăm pe o copie, pentru că bucla distruge numărul.
- Complexity
- O(k), where k is the number of digits of n
- Grade
- Grade 9 (Clasa a IX-a)
- Chapter
- Digits of a number
Examples
Example 1
Input
12321
Expected output
DA
Example 2
Input
1231
Expected output
NU
The code
Comments are in Romanian, as in the original collection. Edit freely: you can reset at any time.
/*
* Titlu: Număr palindrom
* Clasa: 9
* Capitol: Cifrele unui număr
* Descriere: Un număr este palindrom dacă se citește la fel de la stânga la
* dreapta și de la dreapta la stânga, adică este egal cu oglinditul
* său. Lucrăm pe o copie, pentru că bucla distruge numărul.
* Complexitate: O(k), unde k este numărul de cifre ale lui n
*
* Exemplu
* Intrare: 12321
* Ieșire: DA
*
* Exemplu
* Intrare: 1231
* Ieșire: NU
*/
#include <iostream>
using namespace std;
int main()
{
long long n, copie, ogl = 0;
cin >> n;
copie = n;
while (copie > 0)
{
ogl = ogl * 10 + copie % 10;
copie = copie / 10;
}
if (ogl == n)
{
cout << "DA" << '\n';
}
else
{
cout << "NU" << '\n';
}
return 0;
}
Runs on a real g++ (C++17, -O2) through Compiler Explorer. Keep runs short; there's a time limit.