2817 - Identice 4
Cerința
Subprogramul identice
are doi parametri, în această ordine, a
și b
, prin care primește câte un număr natural (10≤a≤b≤106
). Subprogramul afișează pe ecran toate numerele naturale din intervalul [a,b]
care au toate cifrele identice. Numerele afișate sunt separate prin câte un spațiu, iar dacă nu există astfel de numere, se afişează pe ecran mesajul nu exista
.
Scrieţi definiţia completă a subprogramului.
Important:
Soluția propusă va conține definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.
Exemplul 1
Input:
a=700
b=1500
Output:
777 888 999 1111
Exemplul 2
Input:
a=-1
b=2
Output:
nu exista
Rezolvare
<syntaxhighlight lang="python3" line="1"> def cifre_identice(numar):
""" Verifică dacă toate cifrele unui număr sunt identice. :param numar: Numărul de verificat. :return: True dacă toate cifrele sunt identice, False în caz contrar. """ cifra = numar % 10 # Se obține ultima cifră numar_temporar = numar // 10
while numar_temporar > 0: if numar_temporar % 10 != cifra: return False numar_temporar //= 10
return True
def identice(a, b):
""" Afișează numerele naturale din intervalul [a, b] care au toate cifrele identice.
:param a: Primul număr natural din interval (10≤a≤b≤1000000). :param b: Al doilea număr natural din interval (10≤a≤b≤1000000). """ a = max(a, 10) # Asigurăm că a este cel puțin 10 exista_numere_identice = False
for numar in range(a, min(b + 1, 1000001)): if cifre_identice(numar): print(numar, end=' ') exista_numere_identice = True
if not exista_numere_identice: print("nu exista")
- Exemplu de apel:
a = 700 b = 1500 identice(a, b) </syntaxhighlight>