Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Second solution in Clear category for The Angles of a Triangle by Sim0000
from math import sqrt, asin, degrees
def checkio(a, b, c):
a, b, c = sorted([a, b, c])
if a + b <= c: return [0, 0, 0]
s = (a + b + c) / 2
h = 2 * sqrt(s * (s - a) * (s - b) * (s - c)) / c
t1 = round(degrees(asin(h / b)))
t2 = round(degrees(asin(h / a)))
return sorted([t1, t2, 180 - t1 - t2])
#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"
March 1, 2014
Comments: