0911 - Cifre6: Diferență între versiuni
De la Universitas MediaWiki
Linia 27: | Linia 27: | ||
def numar(n, k): | def numar(n, k, numar_maxim): | ||
cifre = sorted(str(n), reverse=True) # Sortează cifrele lui n în ordine descrescătoare | cifre = sorted(str(n), reverse=True) # Sortează cifrele lui n în ordine descrescătoare | ||
numar_maxim = int(''.join(cifre[:k])) # Concatenează primele k cifre și le transformă în int | numar_maxim = int(''.join(cifre[:k])) # Concatenează primele k cifre și le transformă în int | ||
Linia 36: | Linia 36: | ||
n = 27594 | n = 27594 | ||
k = 3 | k = 3 | ||
x = 0 | |||
if validare(str(n), k): | if validare(str(n), k): | ||
print("Datele de intrare corespund restricțiilor impuse.") | print("Datele de intrare corespund restricțiilor impuse.") | ||
n, k = int(n), int(k) | n, k = int(n), int(k) | ||
numar_maxim = numar(n, k) | numar_maxim = numar(n, k, x) | ||
print("Cel mai mare numar ce poate fi scris cu", k, "cifre ale lui", n, "este", numar_maxim) | print("Cel mai mare numar ce poate fi scris cu", k, "cifre ale lui", n, "este", numar_maxim) | ||
else: | else: | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 19 martie 2023 20:17
Cerință
Să se scrie o funcție Python care primește ca parametri două numere n și k și determină cel mai mare număr care poate fi scris cu k cifre ale lui n. Funcția va întoarce rezultatul prin intermediul unui parametru de ieşire.
Restricții de precizări
- Numele funcției va fi numar
- Funcția va avea trei parametri: primul parametru reprezintă numărul n; al doilea parametru reprezintă numărul k, iar al treilea va reprezenta valoarea determinată de funcție toți parametrii vor fi numere naturale nenule mai mici decât 2.000.000.000
- n va avea cel puțin k cifre
Exemplu
Exemplul 1
- Dupa apelul
- numar(27594 , 3 , x);
- Ieșire
- x va avea valoarea 975.
Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
Rezolvare
Rezolvare ver. 1
def validare(n, k):
return int(n) < 2_000_000_000 and len(n) >= int(k)
def numar(n, k, numar_maxim):
cifre = sorted(str(n), reverse=True) # Sortează cifrele lui n în ordine descrescătoare
numar_maxim = int(''.join(cifre[:k])) # Concatenează primele k cifre și le transformă în int
return numar_maxim # Returnează numărul maxim
if __name__ == '__main__':
n = 27594
k = 3
x = 0
if validare(str(n), k):
print("Datele de intrare corespund restricțiilor impuse.")
n, k = int(n), int(k)
numar_maxim = numar(n, k, x)
print("Cel mai mare numar ce poate fi scris cu", k, "cifre ale lui", n, "este", numar_maxim)
else:
print("Datele de intrare nu corespund restricțiilor impuse.")