0444 - Afisare Cifre: Difference between revisions
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>
- 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=" ")
</syntaxhighlight>