BC51 三角形判断

描述

KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。

输入描述:

题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。

输出描述:

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。

示例1

输入:

2 3 23 3 3

输出:

Isosceles triangle!Equilateral triangle!

解答:


triangle_date = []

while len(triangle_date) < 1:
    try:
        triangle_date.append(input())
    except:
        break


def triangle_compute(a, b, c):
    """
    三角形判断
    :param a:
    :param b:
    :param c:
    :return: 1 三角形  -1 非三角形
    """
    if (a <= 0 or b <= 0 or c <= 0) or (a >= 1000 or b >= 1000 or c >= 1000):
        # 加入题目的限制条件
        return -1
    else:
        if a + b > c and a - b < c:
            return 1
        elif b + c > a and b - c < a:
            return 1
        elif c + a > b and c - a < b:
            return 1
        else:
            return -1


for i in triangle_date:
    a, b, c = map(float, i.split(" "))
    x = triangle_compute(a, b, c)
    if x == 1 and (a == b and b == c):
        print("Equilateral triangle!")
    elif x == 1 and (a == b or b == c or c == a):
        print("Isosceles triangle!")
    elif x == 1:
        print("Ordinary triangle!")
    elif x == -1:
        print("Not a triangle!")
    else:
        print("Process Error!")

解析:

1.知晓三角形判定公式,三边大于0,两边之和大于第三边,两边之差小于第三边。

2.考虑下数字类型的输入。

3.易错点:and和or连接判断时,尽量加括号,保证计算不出现逻辑错误。

20211124

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值