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 Coamo
from math import acos, degrees
def checkio(a, b, c):
a, b, c = sorted([a, b, c])
if a + b > c:
c2 = degrees(acos((a*a + b*b - c*c) / float(2 * a * b)))
b2 = degrees(acos((a*a + c*c - b*b) / float(2 * a * c)))
a2 = degrees(acos((b*b + c*c - a*a) / float(2 * b * c)))
a2, b2, c2 = round(a2), round(b2), round(c2)
return sorted((a2, b2, c2))
else:
return [0, 0, 0]
#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"
Nov. 18, 2016