3181 - Marte3
Cerința[edit | edit source]
Pe planeta Marte anul marțian durează x
zile marțiene, iar o zi marțiană durează y
ore. În fiecare oră, marțianului Iggle îi crește o antenă. După cât timp va avea Iggle n
antene?
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele naturale x y n
.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran trei numere naturale: a
, z
, h
, pe rânduri diferite, reprezentând numărul de ani, zile și ore după care Iggle va avea n
antene.
Restricții și precizări[edit | edit source]
1 ≤ x , y ≤ 1.000
1 ≤ n ≤ 1.000.000.000
Exemplu:[edit | edit source]
Intrare
5 3 100
Ieșire
6 3 1
Explicație[edit | edit source]
Anul marțian are 5
zile, iar ziua marțiană are 3
ore. Astfel, un an marțian va avea 5*3 = 15
ore. Atunci 100
de ore marțiene înseamnă 6 ani și încă 10
ore. Cele 10
ore înseamnă 3 zile și 1 oră.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python">
- 3181 - Marte3
def validare(nr_x, nr_y, nr_n):
# Daca datele sunt invalide v-om face raise la eroarea ValueError
conditii = ( nr_x >= 1, nr_y >= 1, nr_n >= 1, nr_x <= 1000, nr_y <= 1000, nr_n <= 1000000000 )
if not all(conditii): raise ValueError
def marte3(nr_x, nr_y, nr_n):
# un an martian are x zile, o zi are y ore, # deci un an va avea x*y ore, astfel a=nr_n//(nr_x * nr_y) a = nr_n // (nr_x * nr_y) # aflam numarul de ore ramase nr_n = nr_n - a * nr_x * nr_y # aflam numarul de zile z = nr_n // nr_y h = nr_n - z * nr_y print(f"{a}\n{z}\n{h}")
if __name__ == '__main__':
# Citim de la tastatura numerele cerute nr_x = int(input()) nr_y = int(input()) nr_n = int(input())
# Verificam daca datele introduse sunt valide # daca nu afisam mesajul corespunsador try: validare(nr_x, nr_y, nr_n) except ValueError: print("Nu au fost respectate cerintele impuse") else: print("Datele de intrare corespund restricțiilor impuse")
marte3(nr_x, nr_y, nr_n)
</syntaxhighlight>