Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for The Angles of a Triangle by Stanislaw_Szataniak
from math import sqrt
from math import asin
from math import degrees
from math import pi
def checkio(a, b, c):
if (a + b > c and b + c > a and a + c > b):
p = sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a)/16.0)
R = (a*b*c)/(4*p)
sina = a/2/R
sinb = b/2/R
angleA = round(asin(sina)/pi*180)
angleB = round(asin(sinb)/pi*180)
angleC = 180 - angleA - angleB
tab = [angleA, angleB, angleC]
tab.sort()
else:
return [0, 0, 0]
return tab
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio(4, 4, 4) == [60, 60, 60], "All sides are equal"
assert checkio(3, 4, 5) == [37, 53, 90], "Egyptian triangle"
assert checkio(2, 2, 5) == [0, 0, 0], "It's can not be a triangle"
Oct. 22, 2016