2766 - Gradient
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>