任意一个长度大于其他两个长度的和,就不能组成三角形,反之,条件成立(包含两个长度的和等于第三个也算)。为什么下面的代码不能正确判断呢?比如a = 2, b =3, c = 5 应该是Yes,但结果是No,哪位高手知道为什么呀?
我应该如何修改呢?谢谢~~
def is_triangle(a, b, c):
if (a > b+c) or (b > a+c) or (c > a+b):
print 'No'
else:
print 'Yes'
def input_var():
a1 = raw_input('a=')
b1 = raw_input('b=')
c1 = raw_input('c=')
is_triangle(a1, b1, c1)
input_var()
从你的程序中我看不出问题来,python语言我不懂,a,b,c是整数还是浮点数,如果是浮点数,可能是浮点数误差引起的,
你可以将程序改成这样,先定义一个很小值的常量 d = 0.000001
if (a - b-c > 0.000001) or (b - a-c > 0.000001) or (c - a-b > 0.000001):
print 'No'
else:
print 'Yes'
谢谢,已解决。