1815 - Unghi
De la Universitas MediaWiki
La geometrie, domnul profesor de matematică le-a vorbit elevilor săi despre unghiuri. Pentru a fi sigur că aceștia au înțeles noțiunile predate, le-a dat o listă cu n probleme.
Cerinţa
Fiind date numărul de ore în variabila h și numărul de minute în variabila m, să se determine câte grade avea unghiul dintre orarul și minutarul unui ceas clasic, la ora h şi m minute?
Date de intrare
Fișierul unghi.in va conține pe prima linie un număr natural n, reprezentând numărul de probleme date ca temă, iar pe a doua linie, două numere h și m, separate printr-un spațiu, cu semnificațiile din cerință.
Date de ieşire
Fișierul unghi.out va conține pe câte o linie numărul de grade corespunzător unghiului format de orar și minutar, pentru fiecare dintre cele n probleme din temă.
Restricții și precizări
- n este număr natural, 1 ⩽ n ⩽ 100
- h este număr natural, 0 ⩽ h ⩽ 24h
- m este număr natural, 0 ⩽ m ⩽ 60
- Dimensiunea unui unghi se măsoară în grade. Un cerc are 360 de grade.
Exemplu
- unghi.in
- 3
- 8 20
- 1 10
- 5 15
- unghi.out
- 130
- 25
- 67.5
Rezolvare
# Deschidem fisierul de intrare
with open('unghi.in', 'r') as intrare:
n = int(intrare.readline())
# Initializam o lista pentru a stoca rezultatele
rezultate = []
# Parcurgem fiecare problema
for _ in range(n):
# Citim ora si minutul pentru fiecare problema
h, m = map(int, intrare.readline().split())
if h == 12:
h = 0
# Daca minutul este 60, il setam la 0 si incrementam ora cu 1
if m == 60:
m = 0
h += 1
# Calculam pozitia orarului in grade
ora = 0.5 * (h * 60 + m)
# Calculam pozitia minutarului in grade
minut = 6 * m
# Calculam unghiul absolut dintre orar si minutar
unghi = abs(ora - minut)
# Daca unghiul este mai mare de 180 de grade, folosim complementul sau in cerc (360 - unghi)
unghi = min(360 - unghi, unghi)
# Adaugam unghiul calculat in lista de rezultate
rezultate.append(unghi)
# Deschidem fisierul de iesire
with open('unghi.out', 'w') as iesire:
# Scriem fiecare unghi calculat pe cate o linie noua in fisierul de iesire
for unghi in rezultate:
iesire.write(str(unghi) + '\n')