0378 - Pavare: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Curtea bunicului este de formă dreptunghiulară cu dimensiunile cunoscute. Bunicul dorește pavarea curții cu plăci de piatră. Firma furnizoare produce plăci de piatră de formă pătrată, de orice dimensiune, iar bunicul dorește să folosească plăci de o singură dimensiune, astfel încât să folosească cât mai puține plăci. NU este posibilă tăierea plăcilor de piatră, iar curtea trebuie pavată în întregime. Cunoscând dimensiunile curți...
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 14: Line 14:
: 12 16
: 12 16
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 12 4
: 12 4
== Explicație ==
== Explicație ==
Line 22: Line 22:
: 26 8
: 26 8
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 52 2
: 52 2
== Explicație ==
== Explicație ==
Line 56: Line 56:


</syntaxhighlight>
</syntaxhighlight>
== Explicație =='''
Codul are rol de a calcula numărul de plăci necesare și dimensiunea acestora pentru a pava o curte dreptunghiulară cu dimensiunile date. Funcția '''pavare_curte''' calculează cmmdc-ul (cel mai mare divizor comun) al celor două dimensiuni, care este de fapt dimensiunea plăcii, și apoi calculează numărul de plăci necesare pentru a acoperi curtea. Rezultatele sunt afișate la consolă.

Latest revision as of 16:10, 28 April 2023

Cerinţa[edit]

Curtea bunicului este de formă dreptunghiulară cu dimensiunile cunoscute. Bunicul dorește pavarea curții cu plăci de piatră. Firma furnizoare produce plăci de piatră de formă pătrată, de orice dimensiune, iar bunicul dorește să folosească plăci de o singură dimensiune, astfel încât să folosească cât mai puține plăci. NU este posibilă tăierea plăcilor de piatră, iar curtea trebuie pavată în întregime.

Cunoscând dimensiunile curții, determinați numărul minim de plăci cu care poate fi pavată curtea și dimensiunea acestora.

Date de intrare[edit]

Programul citește de la tastatură două numere naturale dim1 dim2, reprezentând dimensiunile curții.

Date de ieşire[edit]

Programul afișează pe ecran numerele numar_placi și dim_max, separate prin exact un spațiu, reprezentând numărul minim de plăci cu care poate fi pavată curtea și dimensiunea acestora.

Restricții și precizări[edit]

  • dim1, dim2 ∈ Ν
  • 1 ⩽ dim1, dim2⩽ 1.000.000.000

Exemplu1[edit]

Intrare
12 16
Ieșire
Datele de intrare corespund restricțiilor impuse.
12 4

Explicație[edit]

Dimensiunea maximă plăcilor cu care se poate pava curtea este 4. Se vor folosi 12 plăci.

Exemplu2[edit]

Intrare
26 8
Ieșire
Datele de intrare corespund restricțiilor impuse.
52 2

Explicație[edit]

Dimensiunea maximă plăcilor cu care se poate pava curtea este 2. Se vor folosi 52 plăci.

Rezolvare[edit]

<syntaxhighlight lang="python" line> import math


def validare_date(dim1, dim2):

   flag = False
   if 0 <= int(dim1) < 1_000_000_000 and 0 <= int(dim2) < 1_000_000_000:
       flag = True
   return flag


def pavare_curte(dim1, dim2):

   if dim1 < dim2:
       dim1, dim2 = dim2, dim1
   cmmdc = math.gcd(dim1, dim2)
   dim_max = cmmdc
   numar_placi = dim1 * dim2 // (dim_max ** 2)
   print(numar_placi, dim_max)


if __name__ == '__main__':

   dim1, dim2 = map(int, input().split())
   if validare_date(dim1, dim2):
       print("\nDatele de intrare corespund restrictiilor impuse.\n")
       pavare_curte(dim1, dim2)
   else:
       print("Datele de intrare nu corespund restrictiilor impuse.")

</syntaxhighlight>

== Explicație == Codul are rol de a calcula numărul de plăci necesare și dimensiunea acestora pentru a pava o curte dreptunghiulară cu dimensiunile date. Funcția pavare_curte calculează cmmdc-ul (cel mai mare divizor comun) al celor două dimensiuni, care este de fapt dimensiunea plăcii, și apoi calculează numărul de plăci necesare pentru a acoperi curtea. Rezultatele sunt afișate la consolă.