Pentru un număr dat x
, considerăm următoarele noțiuni:
- oglinditul lui
x
reprezintă numărul scris cu cifrele luix
în ordine inversă; - urma lui
x
reprezintă diferența dintre numărul format cu atâtea cifre de9
câte cifre arex
și numărulx
; - numărul
x
este curat dacă oglinditul său este egal cu urma sa. De exemplu,27
este un număr curat.
Cerința
Se dau cel mult 1000
numere naturale mai mici decât 100.000.000
. Să se stabilească despre fiecare număr dacă este sau nu curat.
Date de intrare
Fișierul de intrare nrcurat.in
conține pe prima linie cel mult 1000
numere naturale mai mici decât 100.000.000
, separate prin spații.
Date de ieșire
Fișierul de ieșire nrcurat.out
va conține pe prima linie pentru fiecare număr x
din fișierul de intrare valoarea 1
dacă x
este curat sau 0
în caz contrar. Valorile sunt separate prin câte un spațiu.
Restricții și precizări
- în fișier sunt cel mult
1000
de numere naturale mai mici decât100.000.000
Exemplu
nrcurat.in
345 18 53 986310 467 1638
nrcurat.out
0 1 0 1 0 1
Explicație
Numerele 18
, 986310
și 1638
sunt numere curate.
#include <bits/stdc++.h> using namespace std; ifstream cin("nrcurat.in"); ofstream cout("nrcurat.out"); int urm(int n){ int nr = 0, cn = n; while(n){ nr = nr * 10 + 9; n/=10; } return nr - cn; } int main(){ int x; for(; cin >> x;){ int urma = urm(x); int d = 0; while(x){ d = d * 10 + x % 10; x/=10; } if(urma == d) cout << 1 << ' '; else cout << 0 << ' '; } return 0; }