0444 - Afisare Cifre

From Bitnami MediaWiki
Revision as of 23:36, 15 May 2023 by Petras.du.ioana (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

<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

<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>