0444 - Afisare Cifre

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

sursa: [1]

Cerinţa

Se dă un număr natural. Afișați în ordine strict crescătoare cifrele care apar în scrierea zecimală a numarului.

Date de intrare

Programul citește de la tastatură numărul.

Date de ieşire

Programul afișează pe ecran în ordine strict crescătoare cifrele care apar în scrierea zecimală a numarului, separate printr-un spațiu.

Restricții și precizări

  • 1 ≤ n ≤ 1.000.000.000

Exemplu

Intrare
2082
Ieșire
Datele introduse corespund restricțiilor impuse.
0 2 8

Rezolvare

Rezolvare ver. 1

def extrage_cifre_distincte(n):
    cifre = set()
    while n > 0:
        cifre.add(n % 10)
        n //= 10
    return cifre


def afiseaza_cifre_ordine_crescatoare(cifre):
    cifre_sortate = sorted(cifre)
    print("Cifrele din numărul introdus, în ordine crescătoare, sunt:")
    for cifra in cifre_sortate:
        print(cifra, end=" ")


if __name__ == '__main__':
    numar = int(input("Introduceți un număr natural: "))
    if numar < 0:
        print("Numărul introdus trebuie să fie pozitiv!")
    else:
        cifre_distincte = extrage_cifre_distincte(numar)
        print("Datele introduse corespund restricțiilor impuse.")
        afiseaza_cifre_ordine_crescatoare(cifre_distincte)

Rezolvare ver. 2

# Citim n de la tastatură
n = int(input("Introduceți un număr natural: "))

# Validăm datele de intrare
if n < 0:
    print("Numărul introdus trebuie să fie pozitiv!")
else:
    # Inițializăm un set pentru a stoca cifrele distincte
    cifre = set()

    # Parcurgem cifrele lui n și le adăugăm în set
    while n > 0:
        cifre.add(n % 10)
        n //= 10
    print("Datele introduse corespund restrictiilor impuse.")
    # Afisam cifrele in ordine crescatoare
    print("Cifrele din numărul introdus, în ordine crescătoare, sunt:")
    for cifra in sorted(cifre):
        print(cifra, end=" ")