0910 - KPrefix

From Bitnami MediaWiki
Revision as of 13:57, 6 May 2023 by Vardai Erwin (talk | contribs) (→‎Rezolvare ver. 1)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerință[edit | edit source]

Să se scrie o funcție Python care primește ca parametri două numere n și k și determină numărul format din primele k cifre ale lui n. Funcția va întoarce rezultatul prin intermediul unui parametru de ieşire.

Date de intrare[edit | edit source]

Se citește un n, un număr natural mai mic decât 2.000.000.000 și k, un număr natural mai mic sau egal cu numărul de cifre al lui n.

Date de ieșire[edit | edit source]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa numar_k, un număr natural format din primele k cifre ale lui n. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări[edit | edit source]

  • Numele funcției va fi prefix
  • 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
  • n va fi număr natural mai mic decât 2.000.000.000
  • n va avea cel puțin k cifre

Exemplu[edit | edit source]

Exemplul 1[edit | edit source]

Intrare
27594
3
Ieșire
Datele introduse corespund restricțiilor impuse.
275

Important[edit | edit source]

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[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line="1" start="1"> def validare(n, k):

   return len(str(n)) >= int(k) and int(n) < 2_000_000_000

def prefix(n, k, rezultat):

   numar_prefix = int(str(n)[:k])
   rezultat = numar_prefix
   return rezultat

if __name__ == '__main__':

   n = input()
   k = input()
   x = 0
   if validare(n, k):
       n, k = int(n), int(k)
       print("Datele introduse corespund restricțiilor impuse.")
       prefix(n, k, x)
   else:
       print("Datele introduse nu corespund restricțiilor impuse.")
 

</syntaxhighlight>

Explicații[edit | edit source]

Acesta este un exemplu de implementare în Python a funcției prefix descrisă în cerință.

Funcția validare este definită pentru a verifica dacă datele de intrare (n și k) corespund restricțiilor impuse în cerințe. Aceasta verifică dacă lungimea lui n este mai mare sau egală cu k și dacă n este mai mic decât 2.000.000.000.

Funcția prefix primește numerele n și k și un parametru rezultat prin referință, pentru a putea returna valoarea determinată de funcție prin intermediul acestuia.

În interiorul funcției, se extrage un număr format din primele k cifre ale lui n și se atribuie variabilei numar_prefix. Această valoare este apoi atribuită parametrului rezultat. În cele din urmă, valoarea parametrului rezultat este returnată de funcție.

În codul principal, sunt definite valorile de test pentru n și k, iar apoi se verifică dacă acestea corespund restricțiilor cu ajutorul funcției validare. Dacă datele de intrare sunt valide, se apelează funcția prefix cu valorile de intrare și cu o variabilă goală x ca parametru rezultat. Valoarea returnată de funcția prefix este apoi afișată. Dacă datele de intrare nu sunt valide, se afișează un mesaj corespunzător.