2817 - Identice 4
De la Universitas MediaWiki
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
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)