0444 - Afisare Cifre

De la Universitas MediaWiki

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=" ")