Grade 10 · Subprograms (functions)Citește în română

Function returning the reverse of a number

Original: Funcție care întoarce oglinditul

O(n)C++1749 lines2 examples

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)

Examples

Example 1

Input

1221

Expected output

1221 DA
Example 2

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.

functie-oglindit.cpp
/*
 * 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.