0911 - Cifre6: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: ==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 valoa...)
 
Linia 1: Linia 1:
==Cerință==
==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.
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==
==Restricții de precizări==

Versiunea de la data 19 martie 2023 20:10

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

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 numar(n, k):
    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

def main():
    n = int(input("Introduceti numarul n: "))
    k = int(input("Introduceti numarul k: "))
    if k > len(str(n)):
        print("Eroare: k trebuie sa fie mai mic sau egal cu numarul de cifre ale lui n.")
        return
    numar_maxim = numar(n, k)
    print("Cel mai mare numar ce poate fi scris cu", k, "cifre ale lui", n, "este", numar_maxim)

if __name__ == '__main__':
    main()