0911 - Cifre6: Difference between revisions

From Bitnami MediaWiki
Line 27: Line 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
Line 36: Line 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>

Revision as of 20:17, 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

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

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

</syntaxhighlight>