NiczymSaper
#include <iostream> using namespace std;
unsigned long long odwroc_i_dodaj(unsigned long long K) { int cyfra[100], licznik = 0; unsigned long long liczba = K; for (int i = 0; liczba > 0; ++i) { cyfra[i] = liczba % 10; liczba /= 10; ++licznik; } unsigned long long odwrocona = 0, mnoznik = 1; for (int i = licznik-1; i >= 0; --i) { odwrocona += cyfra[i] * mnoznik; mnoznik *= 10; } licznik = 0; liczba = K + odwrocona; unsigned long long wynik = liczba; for (int i = 0; liczba > 0; ++i) { cyfra[i] = liczba % 10; liczba /= 10; ++licznik; } bool ok = true; for (int i = 0, k = licznik-1; i < licznik/2; ++i, --k) { if (cyfra[i] != cyfra[k]) ok = false; } if (ok) return wynik; else { cout << wynik << endl; return odwroc_i_dodaj(wynik); } }
int main() { unsigned long long K; cin >> K; if (!cin) return 0; if (K >= 10 && K <= 1000000000000) { cout << K << endl; long long wynik = odwroc_i_dodaj(K); cout << wynik; } return 0; }
using namespace std;
unsigned long long odwroc_i_dodaj(unsigned long long K)
{
int cyfra[100], licznik = 0;
unsigned long long liczba = K;
for (int i = 0; liczba > 0; ++i)
{
cyfra[i] = liczba % 10;
liczba /= 10;
++licznik;
}
unsigned long long odwrocona = 0, mnoznik = 1;
for (int i = licznik-1; i >= 0; --i)
{
odwrocona += cyfra[i] * mnoznik;
mnoznik *= 10;
}
licznik = 0;
liczba = K + odwrocona;
unsigned long long wynik = liczba;
for (int i = 0; liczba > 0; ++i)
{
cyfra[i] = liczba % 10;
liczba /= 10;
++licznik;
}
bool ok = true;
for (int i = 0, k = licznik-1; i < licznik/2; ++i, --k)
{
if (cyfra[i] != cyfra[k])
ok = false;
}
if (ok)
return wynik;
else
{
cout << wynik << endl;
return odwroc_i_dodaj(wynik);
}
}
int main()
{
unsigned long long K;
cin >> K;
if (!cin)
return 0;
if (K >= 10 && K <= 1000000000000)
{
cout << K << endl;
long long wynik = odwroc_i_dodaj(K);
cout << wynik;
}
return 0;
}