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