3825 - Radius

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerinţa

Se da un poligon regulat cu n laturi si a lungimea unei laturi. Aflati distanta de la centrul poligonului la oricare varf.

Date de intrare

Programul citește de la tastatură numerele n si a.

Date de ieşire

Programul va afișa pe ecran numărul r, reprezentand distanta de la centrul poligonului la varf, cu 2 zecimale exacte, fără rotunjire.

Restricții și precizări

  • 3 ≤ n ≤ 360
  • 1 ≤ a ≤ 1000

Exemplul 1

Intrare
3 2
Ieșire
Datele introduse corespund restricțiilor impuse.
1.15

Exemplul 2

Intrare
4 2
Ieșire
Datele introduse corespund restricțiilor impuse.
1.41

Exemplul 3

Intrare
6 3
Ieșire
Datele introduse corespund restricțiilor impuse.
3.00

Exemplul 4

Intrare
n
Ieșire
Datele introduse nu corespund restricțiilor impuse.
# 3825 - Radius
import math


def verificare_restrictii(n1, a1):
    # functia de verificare a datelor de intrare
    if 3 <= n1 <= 360 and 1 <= a1 <= 1000:  # updated restrictions
        return True
    else:
        return False


def distanta_centru_varf(n1, a1):
    # Unghiul dintre doua laturi adiacente ale poligonului
    unghi = 2 * math.pi / n1
    # Distanta de la centrul poligonului la oricare varf
    r1 = a1 / (2 * math.sin(unghi / 2))
    return r1


if __name__ == "__main__":
    try:
        # Citim datele de intrare
        n, a = map(int, input().split())
        if verificare_restrictii(n, a):  # verificam datele de intrare
            print("Datele de intrare corespund restrictiilor impuse.")
            # Calculam distanta de la centrul poligonului la varf
            r = distanta_centru_varf(n, a)
            # Afisam rezultatul cu 2 zecimale exacte, fara rotunjire
            print(f"{r: .2f}")
        else:
            print("Datele de intrare nu corespund restrictiilor impuse.")
    # ne asteptam la 2 tipuri de erori din cauza datelor de intrare, le tratam corespunzator
    except ValueError:
        print("Datele de intrare nu corespund restrictiilor impuse.")
    except IndexError:
        print("Datele de intrare nu corespund restrictiilor impuse.")