2766 - Gradient

From Bitnami MediaWiki

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 fiecare, separate printr-o virgulă și un spațiu (, ), având semnificația din enunț.

Restricții și precizări

  • 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

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

Explicație

Acesta este exemplul descris în enunț.

…sau:

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

…sau:

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>