0911 - Cifre6: Difference between revisions

From Bitnami MediaWiki
Line 3: Line 3:


==Restricții de precizări==
==Restricții de precizări==
:Numele funcției va fi '''numar'''
*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'''
*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
*'''n''' va avea cel puțin '''k''' cifre
 
==Exemplul 1==
==Exemplul 1==
;Dupa apelul
;Dupa apelul

Revision as of 20:10, 19 March 2023

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

<syntaxhighlight lang="python" line="1" start="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()

</syntaxhighlight>