0444 - Afisare Cifre

From Bitnami MediaWiki

sursa: [1]

Cerinţa[edit | edit source]

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[edit | edit source]

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

Date de ieşire[edit | edit source]

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[edit | edit source]

  • 1 ≤ n ≤ 1.000.000.000

Exemplu[edit | edit source]

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

Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line>

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)

</syntaxhighlight>

Rezolvare ver. 2[edit | edit source]

<syntaxhighlight lang="python" line>

  1. Citim n de la tastatură

n = int(input("Introduceți un număr natural: "))

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

</syntaxhighlight>