Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __author__ = 'Neys'
- # Should return triangle type:
- # 0 : if triangle cannot be made with given sides
- # 1 : acute triangle
- # 2 : right triangle
- # 3 : obtuse triangle
- from math import acos,pi
- def triangle_type(a, b, c):
- if (a+b > c) and (b+c > a) and (c+a > b):
- def angle_a(a,b,c):
- x = ( (a**2)-(b**2)-(c**2) )
- y = -2*(b*c)
- z = x/y
- #print(acos(z))
- return round( acos(z) *180/pi )
- def angle_b(a,b,c):
- x = ( (b**2)-(a**2)-(c**2) )
- y = -2*(a*c)
- return round( (acos(x/y)*180)/pi )
- def angle_c(a,b,c):
- x = ( (c**2)-(a**2)-(b**2) )
- y = -2*(b*a)
- z = x/y
- return round( (acos(x/y)*180)/pi )
- anglea, angleb, anglec = angle_a(a,b,c), angle_b(a,b,c), angle_c(a,b,c)
- if anglea==90 or angleb==90 or anglec==90:
- print(str(angle_a(a,b,c)) + ' ' + str(angle_b(a,b,c)) + ' ' + str(angle_c(a,b,c)))
- print(2)
- return (2)
- elif anglea<90 and angleb<90 and anglec<90:
- print(str(angle_a(a,b,c)) + ' ' + str(angle_b(a,b,c)) + ' ' + str(angle_c(a,b,c)))
- print(1)
- return (1)
- elif anglea>90 or angleb>90 or anglec>90:
- print(str(angle_a(a,b,c)) + ' ' + str(angle_b(a,b,c)) + ' ' + str(angle_c(a,b,c)))
- print(3)
- return (3)
- else:
- return (0)
- triangle_type(7,3,2) # Not triangle
- triangle_type(2,4,6) # Not triangle
- triangle_type(8,5,7) # Acute
- triangle_type(3,4,5) # Right
- triangle_type(7,12,8) # Obtuse
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement