0280 - Pal Max
Sursă: [1]
Cerinţa
Se dau mai multe numere naturale. Determinaţi cel mai mare număr palindrom aflat printre numerele date şi de câte ori apare.
Date de intrare
Programul citește de la tastatură numere naturale, până la apariţia lui zero, care nu se ia în considerare.
Date de ieşire
Programul afișează pe ecran numerele palindrom_maxim şi nr_aparitii, numărul palindrom maxim şi numărul de apariţii, separate printr-un spaţiu, sau mesajul NU EXISTA, dacă printre numerele date nu există nici un număr palindrom
Restricții și precizări
- fiecare dintre numerele citite va avea cel mult 9 cifre;
Exemplu
- Intrare
- 78 56 5665 98789 5665 88 98789 12521 5665 0
- Ieșire
- 98789 2
Rezolvare
<syntaxhighlight lang="python" line>
def este_palindrom(numar):
invers = 0 copie = numar while copie > 0: ultima_cifra = copie % 10 invers = invers * 10 + ultima_cifra copie //= 10 return numar == invers
numere = [] while True:
numar = int(input()) if numar == 0: break numere.append(numar)
palindrom_maxim = None nr_aparitii = 0 for numar in numere:
if este_palindrom(numar) and (palindrom_maxim is None or numar > palindrom_maxim): palindrom_maxim = numar nr_aparitii = 1 elif numar == palindrom_maxim: nr_aparitii += 1
if palindrom_maxim is not None:
print(palindrom_maxim, nr_aparitii)
else:
print("NU EXISTA")
</syntaxhighlight>