Grade 10 · Subprograms (functions)Citește în română
Function returning the reverse of a number
Original: Funcție care întoarce oglinditul
The idea
The function oglindit(x) builds the number with the digits of x in reverse order and returns it. With its help, the function palindrom(x) fits on one line: x is a palindrome if it equals its reverse. The reverse is printed and YES/NO (DA/NU) for the palindrome.
Original description (Romanian)
Funcția oglindit(x) construiește numărul cu cifrele lui x în ordine inversă și îl întoarce cu return. Cu ajutorul ei, funcția palindrom(x) se scrie într-un singur rând: x este palindrom dacă este egal cu oglinditul său. Se afișează oglinditul și DA/NU pentru palindrom.
- Complexity
- O(k), where k is the number of digits of x
- Grade
- Grade 10 (Clasa a X-a)
- Chapter
- Subprograms (functions)
Examples
Input
1221
Expected output
1221 DA
Input
1230
Expected output
321 NU
The code
Comments are in Romanian, as in the original collection. Edit freely: you can reset at any time.
/*
* Titlu: Funcție care întoarce oglinditul
* Clasa: 10
* Capitol: Subprograme (funcții)
* Descriere: Funcția oglindit(x) construiește numărul cu cifrele lui x în ordine
* inversă și îl întoarce cu return. Cu ajutorul ei, funcția palindrom(x)
* se scrie într-un singur rând: x este palindrom dacă este egal cu
* oglinditul său. Se afișează oglinditul și DA/NU pentru palindrom.
* Complexitate: O(k), unde k este numărul de cifre ale lui x
*
* Exemplu
* Intrare: 1221
* Ieșire: 1221 DA
*
* Exemplu
* Intrare: 1230
* Ieșire: 321 NU
*/
#include <iostream>
using namespace std;
long long oglindit(long long x)
{
long long ogl = 0;
while (x > 0)
{
ogl = ogl * 10 + x % 10;
x = x / 10;
}
return ogl;
}
bool palindrom(long long x)
{
return x == oglindit(x);
}
int main()
{
long long n;
cin >> n;
cout << oglindit(n) << ' ';
if (palindrom(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.