九度oj 题目1048:判断三角形类型

yizhihongxing

九度oj 题目1048:判断三角形类型

题目描述

给定三条边,请你判断一下能不能组成一个三角形。

如果能组成三角形,你还需要告诉我们它的类型:

  • 等边三角形 Equilateral Triangle
  • 等腰三角形 Isosceles Triangle
  • 直角三角形 Right Triangle
  • 普通三角形 Common Triangle
  • 不能构成三角形 Not A Triangle

输入格式

输入数据首先包含一个整数T,表示测试数据组数然后是T组数据。每组数据占一行,包含三个正整数a,b,c (0 < a,b,c < 1,000,000)。

输出格式

对于每组数据,如果它们能组成一个三角形,请输出三角形的类型,否则请输出"Not A Triangle"。

样例

输入样例:

4
4 4 4
4 4 7
3 4 5
1 2 3

输出样例:

Equilateral Triangle
Not A Triangle
Right Triangle
Not A Triangle

解题思路

判断三角形类型,需要先判断它是否能构成三角形。对于三条边a,b,c的组合来说,能组成三角形的条件是:

  • a+b>c
  • a+c>b
  • b+c>a

如果能构成三角形,则需要判断三角形的类型。根据定义可以分为以下几种:

  • 等边三角形:三条边都相等
  • 等腰三角形:仅有两条边相等
  • 直角三角形:有一条边是直角边,即a²+b²=c²(a、b是直角边,c是斜边)
  • 普通三角形:三条边不相等且不是直角三角形

需要注意的是,由于输入数据可能存在规律性,对于多组数据输入,需要每组数据输出后清空缓存。

代码实现

下面是用Python编写的解题代码:

import sys

def judge_triangle(a, b, c):
    if a + b > c and a + c > b and b + c > a:
        if a == b == c:
            print("Equilateral Triangle")
        elif a == b or a == c or b == c:
            print("Isosceles Triangle")
        elif a*a + b*b == c*c or a*a + c*c == b*b or b*b + c*c == a*a:
            print("Right Triangle")
        else:
            print("Common Triangle")
    else:
        print("Not A Triangle")

if __name__ == "__main__":
    T = int(input())
    for i in range(T):
        a, b, c = map(int, sys.stdin.readline().split())
        judge_triangle(a, b, c)
        # 清空缓存
        sys.stdin.flush()

总结

本题需要判断三角形是否存在和判断三角形的类型,根据定义即可。

在多组数据输入时,需要及时清空缓存,避免缓存导致的错误答案。使用sys.stdin.flush()函数即可实现清空缓存的功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:九度oj 题目1048:判断三角形类型 - Python技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • 用JJU盘系统工具制作U盘启动盘实现USB启动

    接下来我将详细讲解如何使用JJU盘系统工具制作U盘启动盘实现USB启动,具体步骤如下: 准备工作 在开始之前,你需要准备以下工具: 一台电脑(Windows系统) 一个U盘(至少8GB) JJU盘系统工具 制作U盘启动盘 下载并安装JJU盘系统工具,下载链接:https://www.jjwxc.net/onebook.php?novelid=4472738&…

    other 2023年6月27日
    00
  • Python中通过@classmethod 实现多态的示例

    对于 Python 中如何通过 @classmethod 实现多态的问题,下文将给出详细的攻略。 什么是多态? 多态是一种面向对象编程的重要概念,表示同一操作在不同的对象上可以有不同的实现方式。简单来说,多态就是不同的类对同一个方法可以有不同的实现。 Python 中的 @classmethod 在 Python 中,通过使用 @classmethod 装饰…

    other 2023年6月26日
    00
  • nginx全局配置和性能优化

    Nginx全局配置和性能优化 Nginx是一款高性能的Web服务器和反向代理服务器,已经成为目前互联网中使用最为广泛的Web服务器之一。为了提高Nginx的性能,我们需要进行全局配置和性能优化。 全局配置 我们可以在Nginx配置文件的全局区域中设置一些全局配置选项,这样可以减少在每个虚拟主机中都进行相同配置的麻烦。以下是几个常用的全局配置选项: worke…

    其他 2023年3月28日
    00
  • XPath常用定位节点元素语句总结

    XPath常用定位节点元素语句总结的完整攻略 XPath是一种用于在XML和HTML文档中定位节点的语言。在Web开发中,XPath常用于爬虫、自动化测试等场景。本文将详细讲解XPath常用定位节点元素语句的完整攻略,包括基本概念、语法规则、常用函数和两个示例说明。 基本概念 在XPath中,节点是文档中的基本元素。节点可以是元素、属性、文本、注释等。XPa…

    other 2023年5月5日
    00
  • Linux openvswitch性能调优

    Linux openvswitch性能调优 Openvswitch是一种流行的开源虚拟交换机,它提供了一些高级网络功能,包括网桥、VLAN、隧道以及负载均衡等。然而,在高负荷的网络环境下,openvswitch经常面临性能瓶颈的问题。本篇文章将探讨openvswitch的性能调优技巧。 1. 选择合适的硬件 在实现数据包传输的时候,openvswitch需要…

    其他 2023年3月28日
    00
  • C语言自定义类型全解析

    C语言自定义类型全解析 在 C 语言中,我们可以通过使用结构体或枚举等语言特性来自定义新的数据类型。本篇文章将全面介绍和解析 C 语言的自定义类型。 结构体 什么是结构体 结构体是一个由若干个不同类型的数据组成的复合型数据类型,可以将它们想象为一个新的数据类型,它的内部成员可以是任意的 C 语言基本数据类型,也可以是结构体,甚至是数组。结构体的使用可以帮助我…

    other 2023年6月25日
    00
  • 关于PHP中Session文件过多的问题及session文件保存位置

    关于PHP中Session文件过多的问题及session文件保存位置,可以通过以下几点进行解决: 问题分析 首先,需要了解Session机制的原理。Session是一种服务器端存储用户信息的技术,它可以在用户登录后存储用户的信息,并在之后的访问中通过Session ID来识别用户身份。在PHP中,Session文件默认是存储在服务器的临时文件夹中,而当访问量…

    other 2023年6月27日
    00
  • Entity Framework表拆分为多个实体

    对于Entity Framework中表拆分为多个实体,我们可以采用以下的完整攻略来实现。 第一步:创建数据模型 首先,我们需要在Entity Framework中创建数据模型。可以通过以下步骤来实现: 在Visual Studio中创建一个新的空项目。 在解决方案资源管理器中,右键单击项目,选择“添加”->“新建项”。 在“添加新项”对话框中选择“A…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部