角形的判断(麻烦版本)"/>
是否构成三角形的判断(麻烦版本)
三角形判断的简单版本为任意俩个数的和大于第三个即可,这里展示第二种极其麻烦且没有用的办法
def triangle(a, b, c): new=[a, b, c]#将输入的任意三个数定义为列表judg=0if judg in new: return 0if a==b==c: #这里的含义是判断等边三角形return 3max=a#最大值,最小值暂且定义为第一个数min=ak=0#从这行开始引入了五个变量k,l1,l2,p,counterl1=0l2=0p=0 for i in new[0:]: #此嵌套循环的意义是时使个数之间都相互进行了一次比较counter=0for j in new[k+1:]: if i<j: l1=k+1+countermax=jelse: max=i l1=pif i>=j: min=jl2=k+1+counterelse:min=il2=pcounter+=1k+=1p+=1if k==2:#为了防止出现多余的循环,这里在小循环体达到末端时进行了终止操作breakif l1!=0:if new[l1]<=new[0]:l1=0;max=new[0]if l2!=0:if new[l2]>new[0]:l2=0;min=new[0]#由于循环的机械性,使其无法在最终赋值时确定初始元素与名义上的最大最小元素的大小关系,这里又进行了一次判断del(new[l1])if l2>0:del(new[l2-1])#注意进行第二次删除操作时,列表已改变,所以要l2的值减一以防止出现list assignment index out of range的操作else:del(new[l2])sum=0mid=0dif=0for g in range(0,len(new)): mid+=new[g]sum=mid+mindif=max-midif sum>max and dif<min: #小边之和大于大边,大边之差小于小边return 1else: return 2
a=5
b=3
c=2
d=triangle(a, b, c)
if d==0:print('输入非法')
if d==1: print('构成三角形')
if d==2: print('构不成三角形')
if d==3: print('等边三角形')
更多推荐
是否构成三角形的判断(麻烦版本)
发布评论