3159 - numere124
Cerința[edit | edit source]
Se citesc un număr natural n
având cifrele diferite două câte două și o cifră c
. Afișați în ordine crescătoare numerele formate din c
cifre distincte care se pot obține din cifrele lui n
.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele n
și c
.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran numerele cerute, câte unul pe fiecare rând. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Nu corespunde restricțiilor".
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 1.000.000.000
,1 < c < 9
n
are cifrele distinctec
este mai mic decât numărul de cifre ale luin
Exemplu 1[edit | edit source]
Intrare
2576 2
Ieșire
25 26 27 52 56 57 62 65 67 72 75 76
Exemplul 2[edit | edit source]
Intrare
2576 2
consola
"Nu corespunde restricțiilor"
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> from itertools import permutations
def verifica_restrictii(n, c):
# Verifică restricțiile if not (1 <= n <= 1000000000 and 1 < c < 9): return False
# Verifică dacă n are cifre distincte cifre = set(str(n)) if len(cifre) != len(str(n)): return False
# Verifică dacă c este mai mic decât numărul de cifre ale lui n if c >= len(str(n)): return False
return True
def generare_numere(n, c):
# Verifică restricțiile if not verifica_restrictii(n, c): print("Nu corespunde restricțiilor") return
# Restul codului pentru generarea și afișarea numerelor cifre = list(str(n)) permutari = list(permutations(cifre, c))
for perm in sorted(permutari): numar = int("".join(perm)) print(numar)
- Citeste input-ul de la tastatură
input_data = input("Introduceti n si c separate prin spatiu: ") n, c = map(int, input_data.split())
- Apelul funcției
generare_numere(n, c)
</syntaxhighlight>