0444 - Afisare Cifre: Difference between revisions

From Bitnami MediaWiki
Am creat de la zero.
 
No edit summary
 
Line 1: Line 1:
sursa: [https://www.pbinfo.ro/probleme/444/afisarecifre]
== Cerinţa ==
== Cerinţa ==
Se dă un număr natural. Afișați în ordine strict crescătoare cifrele care apar în scrierea zecimală a numarului.
Se dă un număr natural. Afișați în ordine strict crescătoare cifrele care apar în scrierea zecimală a numarului.
Line 20: Line 21:
== Rezolvare ==
== 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>
<syntaxhighlight lang="python" line>



Latest revision as of 23:36, 15 May 2023

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>