【洛谷算法题】P5717-【深基3.习8】三角形分类【入门2分支结构】Java题解

2023-12-14 18:23:19

花无缺

👨?💻博客主页:@花无缺
欢迎 点赞👍 收藏? 留言📝 加关注?!
本文由 花无缺 原创

收录于专栏 【洛谷算法题】



【洛谷算法题】P5717-【深基3.习8】三角形分类【入门2分支结构】

【深基3.习8】三角形分类 - 洛谷

🌏题目描述

给出三条线段 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

🌏输出格式

输出若干行判定字符串。

🌏样例 #1

🌙样例输入 #1

3 3 3

🌙样例输出 #1

Acute triangle
Isosceles triangle
Equilateral triangle

🌏样例 #2

🌙样例输入 #2

3 4 5

🌙样例输出 #2

Right triangle

🌏样例 #3

🌙样例输入 #3

6 10 6

🌙样例输出 #3

Obtuse triangle
Isosceles triangle

🌏样例 #4

🌙样例输入 #4

1 14 5

🌙样例输出 #4

Not triangle

🌏提示

当两短边的平方和大于一长边的平方,说明是锐角三角形。

当两短边的平方和等于一长边的平方,说明是直角三角形。

当两短边的平方和小于一长边的平方,说明是钝角三角形。

🌏题解

import java.util.Scanner;
import java.util.Arrays;

public class P5717 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 将三角形的三条边长存储在数组中
        int[] a = new int[3];
        for (int i = 0; i < a.length; i++) {
            a[i] = in.nextInt();
        }
        // 将数组从小到大排序
        // 排序后 a[0],a[1]为三角形的短边, a[2]为三角形的长边
        Arrays.sort(a);
        // 首先判断三条边是否能构成三角形
        // 判断条件: 任意两条边之和大于第三边, 任意两条边只差小于第三边
        if (a[0] + a[1] > a[2] && a[0] - a[1] < a[2]) {
            // 如果两条短边的平方和等于长边的平方和, 则该三角形是直角三角形
            if (a[0] * a[0] + a[1] * a[1] == a[2] * a[2]) {
                System.out.println("Right triangle");
            //     如果两条短边的平方和大于长边的平方和, 则该三角形是锐角三角形
            } else if (a[0] * a[0] + a[1] * a[1] > a[2] * a[2]) {
                System.out.println("Acute triangle");
            //     否则为钝角三角形
            } else {
                System.out.println("Obtuse triangle");
            }

            // 两短边相等为等腰三角形
            if (a[0] == a[1]) {
                System.out.println("Isosceles triangle");
            }

            // 三条边两两相等为等边三角形
            if (a[0] == a[1] && a[1] == a[2]) {
                System.out.println("Equilateral triangle");
            }

        //     不能组成三角形
        } else {
            System.out.println("Not triangle");
        }
        in.close();
    }
}

🌏总结

这个题考察了简单的数学知识,结合选择结构,我们可以很轻松的做出来。

作者:花无缺(huawuque404.com)


🌸欢迎关注我的博客:花无缺-每一个不曾起舞的日子都是对生命的辜负~
🍻一起进步-刷题专栏:【洛谷算法题】
💻Java题解同步仓库:https://github.com/huawuque404/Java-solution
🥇往期精彩好文:
📢【CSS选择器全解指南】
📢【HTML万字详解】
你们的点赞👍 收藏? 留言📝 关注?
是我持续创作,输出优质内容的最大动力!
谢谢!

文章来源:https://blog.csdn.net/huawuque404/article/details/134924233
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。