2766 - Gradient

From Bitnami MediaWiki
Revision as of 17:41, 24 October 2023 by Zmicala Narcis (talk | contribs) (Pagină nouă: == Cerinţa == Dându-se două culori valide (reprezentate fiecare prin câte '''3''' numere) și numărul '''n''', calculați toate culorile prin care va trece prima pentru a deveni a doua. == Date de intrare == Programul citește de la tastatură numerele '''R1''', '''G1''', '''B1''', '''R2''', '''G2''', '''B2''', n, în această ordine, cu semnificația din enunț. == Date de ieşire == Programul va afișa pe ecran '''n''' perechi (câte una pe linie) de câte trei numere...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa[edit | edit source]

Dându-se două culori valide (reprezentate fiecare prin câte 3 numere) și numărul n, calculați toate culorile prin care va trece prima pentru a deveni a doua.

Date de intrare[edit | edit source]

Programul citește de la tastatură numerele R1, G1, B1, R2, G2, B2, n, în această ordine, cu semnificația din enunț.

Date de ieşire[edit | edit source]

Programul va afișa pe ecran n perechi (câte una pe linie) de câte trei numere fiecare, separate printr-o virgulă și un spațiu (, ), având semnificația din enunț.

Restricții și precizări[edit | edit source]

  • 2 ≤ n ≤ 1000;
  • Culorile inițiale sunt valide;
  • Valorile primei culori nu sunt neapărat mai mici decât valorile celei de a doua.

Exemplu[edit | edit source]

Intrare
0 10 20 0 40 80 4
Iesire
0, 10, 20
0, 20, 40
0, 30, 60
0, 40, 80

Explicație[edit | edit source]

Acesta este exemplul descris în enunț.

…sau:[edit | edit source]

Intrare
0 0 0 23 2 20 3
Ieșire
0, 0, 0
11, 1, 10
23, 2, 20

…sau:[edit | edit source]

Intrare
23 2 20 0 0 0 3
Ieșire
23, 2, 20
11, 1, 10
0, 0, 0

<syntaxhighlight lang="python" line> def culori_intermediare(R1, G1, B1, R2, G2, B2, n):

   # Calculam pasul pentru fiecare culoare
   pas_R = (R2 - R1) / (n - 1)
   pas_G = (G2 - G1) / (n - 1)
   pas_B = (B2 - B1) / (n - 1)
   # Generam culorile intermediare
   for i in range(n):
       R = round(R1 + i * pas_R)
       G = round(G1 + i * pas_G)
       B = round(B1 + i * pas_B)
       print(f"{R}, {G}, {B}")

if __name__ == "__main__":

   # Citim datele de intrare
   R1, G1, B1, R2, G2, B2, n = map(int, input().split())
   # Apelam functia pentru a calcula culorile intermediare
   culori_intermediare(R1, G1, B1, R2, G2, B2, n)

</syntaxhighlight>