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