Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
1767 - Multiple
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Sergiu, fiind un elev talentat în ceea ce priveşte informatica, doreşte pe cât posibil să-şi ajute prietenii în rezolvarea problemelor. Prietenii lui au venit la el, fiind foarte confuzi în legătură cu o anumită problemă: Ei au un set de <span style=“color: red”> T</span> întrebări de forma: Care este cel mai mic număr strict mai mare decât <span style=“color: red”> n</span>, divizibil cu <span style=“color: red”> k</span>? Fiind ocupat cu pregătirea pentru OJI, el vă roagă pe voi să-l ajutaţi! ==Cerința== Pentru fiecare din cele <span style=“color: red”> T</span> întrebări, să se afle cel mai mic număr strict mai mare decât <span style=“color: red”> n</span> care este divizibil cu <span style=“color: red”> k</span>. ==Date de intrare== Fișierul de intrare <span style=“color: red”> multiple.in</span> conține pe prima linie numărul <span style=“color: red”> T<span>, iar următoarele <span style=“color: red”> T</span> linii conţin câte două numere, <span style=“color: red”> n</span> şi <span style=“color: red”> k<span>, cu semnificaţia din enunţ. ==Date de ieșire== Dacă datele sunt introduse corect, pe ecran se va afișa: '''"Date de intrare valide."''', apoi fișierul de ieșire <span style=“color: red”> multiple.out</span> va conține pe <span style=“color: red”> T</span> linii, pentru fiecare întrebare, numărul cerut. ==Restricții și precizări== <span style=“color: red”> 1 ≤ T ≤ 10000</span> se recomandă utilizarea tipurilor de date pe 8 octeţi (64 de biţi) dacă reuşiţi să-l ajutaţi pe Sergiu, pe lângă cele 100 de puncte, probabil el vă va face cinste şi cu o sticlă de apă minerală ==Exemplu:== <span style=“color: red”> multiple.in</span> : 5 : 1 2 : 3 7 : 24 9 : 13 223 : 45 9 : Date de intrare valide <span style=“color: red”> multiple.out</span> : 2 : 7 : 27 : 223 : 54 ==Rezolvare== <syntaxhighlight lang="python" line> def validare_date(n): if n < 1 or n > 10000: print("n trebuie sa fie intre 1 si 10000") return False return True def multiple(n): for i in range(n): a, b = map(int, fin.readline().strip().split()) if a == b: fout.write(str(2 * b) + "\n") elif a < b: fout.write(str(b) + "\n") else: fout.write(str(b - (a % b) + a) + "\n") fin.close() fout.close() if __name__ == '__main__': fin = open("multiple.in") fout = open("multiple.out", "w") n = int(fin.readline().strip()) if validare_date(n): print("Date de intrare valide") multiple(n) </syntaxhighlight> ==Explicatie cod:== Funcția validare_date(n) primește un număr n și verifică dacă acesta se încadrează în intervalul [1, 10000]. Dacă n nu respectă această condiție, se afișează un mesaj de eroare și funcția returnează False. În caz contrar, returnează True. Funcția multiple(n) primește un număr n și efectuează un set de operații pentru n iterații. În fiecare iterație, se citesc două numere a și b folosind funcția fin.readline().strip().split(). Apoi, se efectuează următoarele verificări: Dacă a este egal cu b, se înmulțește b cu 2 și rezultatul este scris în fișierul de ieșire. Dacă a este mai mic decât b, se scrie b în fișierul de ieșire. Dacă a este mai mare decât b, se calculează diferența b - (a % b) + a și rezultatul este scris în fișierul de ieșire. În blocul if __name__ == '__main__':, se deschid fișierele de intrare și de ieșire (multiple.in și multiple.out). Se citește prima linie din fișierul de intrare pentru a obține n. Apoi, se verifică dacă datele de intrare sunt valide utilizând funcția validare_date(). Dacă datele sunt valide, se afișează un mesaj de confirmare, se apelează funcția multiple() și se efectuează operațiile pentru n iterații. În final, se închid fișierele de intrare și de ieșire. Codul primește date de intrare din fișierul "multiple.in", validează datele și efectuează operații pentru n iterații, în funcție de valorile citite din fișier. Rezultatele sunt scrise în fișierul "multiple.out".
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width