Cod sursa(job #2417916)

Utilizator AnghelutaDiana06Angheluta Diana AnghelutaDiana06 Data 2 mai 2019 12:07:33
Problema A+B Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.67 kb
#include <iostream>

using namespace std;
int nrcifre( int x )
{
    int inlocuitor1234, nrcif = 0;
    inlocuitor1234 = x;
    while ( inlocuitor1234 != 0 )
    {
        nrcif++;
        inlocuitor1234 = inlocuitor1234 / 10;
    }
    return nrcif;
}

int palindrom1( int nr1 )
{
    int k, imp = 1, num1, ogl1 = 0, inl1;
    num1 = nr1;
    for ( k = 1; k <= nrcifre(nr1); k++ )
    {
        imp = imp * 10;
    }
    for ( k = 1; k <= nrcifre(nr1) / 2; k++ )
    {
        num1 = num1 / 10;
    }
    inl1 = num1;
    while ( num1 != 0 )
    {
        ogl1 = ogl1 * 10 + num1 % 10;
        num1 = num1 / 10;
    }
    for ( k = 1; k <= nrcifre(nr1) / 2; k++ )
    {
        inl1 = inl1 * 10;
    }
    inl1 = inl1 + ogl1;
    return inl1;
}

int palindrom2( int nr2 )
{
    int k2, imp2 = 1, num2, ogl2 = 0, inl2;
    num2 = nr2;
    for ( k2 = 1; k2 <= nrcifre(nr2); k2++ )
    {
        imp2 = imp2 * 10;
    }
    for ( k2 = 1; k2 <= nrcifre(nr2) / 2; k2++ )
    {
        num2 = num2 / 10;
    }
    num2 = num2 - 1;
    inl2 = num2;
    while ( num2 != 0 )
    {
        ogl2 = ogl2 * 10 + num2 % 10;
        num2 = num2 / 10;
    }
    for ( k2 = 1; k2 <= nrcifre(nr2) / 2; k2++ )
    {
        inl2 = inl2 * 10;
    }
    inl2 = inl2 + ogl2;
    return inl2;
}

int main()
{
    int y;
    cin >> y;
    while ( y != palindrom1(y) )
    {
        if ( nrcifre(y) % 2 == 0 )
        {
            if ( ( palindrom1(y) - y ) > ( y - palindrom2(y) ) && y > palindrom2(y) )
            {
                cout << y - palindrom2(y) << " " << palindrom2(y);
            }
            else
            {
                if (( palindrom1(y) - y ) > ( y - palindrom2(y) ) && y < palindrom2(y))
                    cout << palindrom2(y) - y << " " << palindrom2(y);
                if ( ( palindrom1(y) - y ) < ( y - palindrom2(y) ) && palindrom1(y) > y )
                    cout << palindrom1(y) - y << " " << palindrom1(y);
                else
                {
                    if ( ( palindrom1(y) - y ) < ( y - palindrom2(y) ) && palindrom1(y) < y )
                        cout << y - palindrom1(y) << " " << palindrom1(y);
                }
                if ( ( palindrom1(y) - y ) == ( y - palindrom2(y) ) && palindrom1(y) > y )
                {
                    cout << palindrom1(y) - y << " " << palindrom1(y);
                }
                else
                {
                    if ( ( palindrom1(y) - y ) == ( y - palindrom2(y) ) && palindrom1(y) < y )
                        cout << y - palindrom1(y) << " " << palindrom1(y);
                }
            }
        }
    }
    return 0;
}