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
2748 - Patrula 3
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!
== Cerinţa == Un domeniu pătrat (cu albastru), ca cel din figură trebuie apărat. Domeniul e împărțit în pătrățele. Latura domeniului este de n pătrățele, n≥7. Pe culoarele colorate patrulează 3 soldați, care încep patrularea din colțul stânga sus în același moment (poziția inițială). În exemplul de mai jos avem n=9. Cei 3 soldați (garda) se vor schimba cu alți 3 soldați în momentul în care ajung în poziția inițială, simultan. Soldații patrulează în sensul acelor de ceasornic fiecare cu aceeași viteză constantă, și fiecare pe culoarul său. Să se scrie un program care determină numărul de circuite complete pentru fiecare soldat (un circuit complet este făcut de un soldat oarecare, pe același culoar până ajunge în poziția inițială), pentru schimbarea gărzii. == Date de intrare == Programul citește de la tastatură numărul '''n'''. == Date de ieşire == Programul va afișa pe ecran numerele '''circuit1''', '''circuit2''' și '''circuit3''' reprezentând numărul de circuite complete pe care le face fiecare soldat. == Restricții și precizări == * '''n ∈ Ν''' * '''7 ⩽ n ⩽ 1.000''' == Exemplu1 == ; Intrare : 9 ; Ieșire : Datele de intrare corespund restricțiilor impuse. : 3 4 6 == Explicație == Primul soldat face 3 ture complete, al doilea 4, iar cel de-al treilea 6. == Exemplu2 == ; Intrare : 14 ; Ieșire : Datele de intrare corespund restricțiilor impuse. : 99 117 143 == Explicație == Primul soldat face 99 ture complete, al doilea 117, iar cel de-al treilea 143. == Rezolvare == <syntaxhighlight lang="python" line> def validare_date(n): if 7 <= int(n) <= 1_000: return True return False def cmmdc(numar1, numar2): while numar2: r = numar1 % numar2 numar1 = numar2 numar2 = r return numar1 def cmmmc(numar1, numar2): return numar1 * numar2 // cmmdc(numar1, numar2) def patrula(n): circuit1 = n * 2 + (n - 2) * 2 n -= 2 circuit2 = n * 2 + (n - 2) * 2 n -= 2 circuit3 = n * 2 + (n - 2) * 2 circuit4 = cmmmc(circuit1, circuit2) rez = cmmmc(circuit3, circuit4) circuit1 = rez // circuit1 circuit2 = rez // circuit2 circuit3 = rez // circuit3 print(circuit1, circuit2, circuit3) if __name__ == '__main__': n = int(input()) if validare_date(n): print("\nDatele de intrare corespund restrictiilor impuse.\n") patrula(n) else: print("Datele de intrare nu corespund restrictiilor impuse.") </syntaxhighlight> == Explicație == Programul calculează numărul minim de runde pe care trebuie să le parcurgă o patrulă pentru a acoperi un poligon cu n laturi. Funcția '''cmmdc''' calculează cel mai mare divizor comun dintre două numere date. Funcția '''cmmmc''' calculează cel mai mic multiplu comun dintre două numere date. Funcția '''patrula''' calculează lungimea circuitelor pe care trebuie să le parcurgă patrula și apoi le înmulțește pentru a obține cel mai mic multiplu comun al lungimilor acestora. Astfel, se obține numărul total de unități de lungime pe care trebuie să le parcurgă patrula. Ulterior, se împarte acest număr la lungimea fiecărui circuit, obținându-se astfel numărul de runde pe care trebuie să le parcurgă patrula pe fiecare circuit.
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