洛谷题单2-P5717 【深基3.习8】三角形分类-python-流程图重构

题目描述

给出三条线段 a , b , c a,b,c a,b,c 的长度,均是不大于 10000 10000 10000 的正整数。打算把这三条线段拼成一个三角形,它可以是什么三角形呢?

  • 如果三条线段不能组成一个三角形,输出Not triangle
  • 如果是直角三角形,输出Right triangle
  • 如果是锐角三角形,输出Acute triangle
  • 如果是钝角三角形,输出Obtuse triangle
  • 如果是等腰三角形,输出Isosceles triangle
  • 如果是等边三角形,输出Equilateral triangle

如果这个三角形符合以上多个条件,请按以上顺序分别输出,并用换行符隔开。

输入格式

输入 3 个整数 a a a、 b b b 和 c c c。

输出格式

输出若干行判定字符串。

输入输出样例

输入

复制代码
3 3 3

输出

复制代码
Acute triangle
Isosceles triangle
Equilateral triangle

方式

代码

python 复制代码
class Solution:
    @staticmethod
    def oi_input():
        """从标准输入读取数据"""
        sides = list(map(int, input().split()))
        return sides

    @staticmethod
    def oi_test():
        """提供测试数据"""
        return [3, 3, 3]

    @staticmethod
    def solution(sides):
        sides.sort()

        a, b, c = sides[0], sides[1], sides[2]

        if a + b <= c or a + c <= b or b + c <= a:
            print("Not triangle")
        else:
            if sides[0] ** 2 + sides[1] ** 2 == c ** 2:
                print("Right triangle")
            elif sides[0] ** 2 + sides[1] ** 2 > c ** 2:
                print("Acute triangle")
            else:
                print("Obtuse triangle")

            if a == b or a == c or b == c:
                print("Isosceles triangle")

            if a == b == c:
                print("Equilateral triangle")


oi_input = Solution.oi_input
oi_test = Solution.oi_test
solution = Solution.solution

if __name__ == '__main__':
    sides = oi_test()
    # sides = oi_input()
    solution(sides)

流程图

特殊类型判断 类型判断 否 是 是 否 是 否 是 否 是 否 是否有两边相等?
a==b || a==c || b==c 输出'Isosceles triangle' 跳过 是否三边相等?
a==b==c 输出'Equilateral triangle' 跳过 a² + b² == c²? 计算平方和
a² + b² vs c² 输出'Right triangle' a² + b² > c²? 输出'Acute triangle' 输出'Obtuse triangle' 开始 主函数调用 读取输入数据
sides = list(map(int, input().split())) 排序三边
sides.sort() 解包变量
a,b,c = sides[0],sides[1],sides[2] 是否构成三角形?
a+b > c ? 输出'Not triangle' 结束

相关推荐
Z_z在努力10 分钟前
【数据结构】队列(Queue)全面详解
java·开发语言·数据结构
唐叔在学习30 分钟前
pip安装太慢?一键切换国内镜像源,速度飞起!
后端·python
Gz、32 分钟前
Spring Boot 常用注解详解
spring boot·后端·python
起风了___42 分钟前
Python 自动化下载夸克网盘分享文件:基于 Playwright 的完整实现(含登录态持久化与提取码处理)
后端·python
帅帅爱数学1 小时前
DeepMimic论文详细解析:基于示例引导的深度强化学习实现物理仿真角色技能
算法·强化学习
我是华为OD~HR~栗栗呀1 小时前
测试转C++开发面经(华为OD)
java·c++·后端·python·华为od·华为·面试
qiu_zhongya1 小时前
iree 用C++来运行Qwen 2.5 0.5b
开发语言·c++·人工智能
汪宁宇1 小时前
giflib5.2.2 在Qt与VS C++中实现Gif缩放示例
开发语言·c++·qt
啊?啊?1 小时前
C/C++练手小项目之倒计时与下载进度条模拟
c语言·开发语言·c++
IT成长日记1 小时前
【LVS入门宝典】LVS调度算法轮询(RR)深度解析:从原理到实战的公平调度之道
算法·lvs·rr·轮询调度算法