P5717 【深基3.习8】三角形分类---Java


题目描述

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

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

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

无
输出格式

无
输入输出样例

无

//说明:输出的顺序有严格的要求,顺序不对也是会报错的,第一次做的时候就因为不小心把输出循序弄错,导致没得满分。切记比赛中也是一样,不是说做出来算法就行,结果要与测评数据一模一样才能得分,细节要注意。

import java.util.Scanner;

public class P5717 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        if (f(a, b, c) == false) {
            System.out.print("Not triangle");
        } else {
            if (a * a + b * b == c * c || b * b + c * c == a * a || a * a + c * c == b * b) {
                System.out.print("Right triangle");
            } else if (a * a > b * b + c * c || b * b > a * a + c * c || c * c > a * a + b * b) {
                System.out.print("Obtuse triangle");
            } else {
                if (a + b > c && a + c > b && b + c > a)
                    System.out.println("Acute triangle");
                if (a == b || a == c || b == c)
                    System.out.println("Isosceles triangle");
                if (a == b && b == c)
                    System.out.println("Equilateral triangle");

            }
        }
    }

    public static boolean f(int x, int y, int z) {
        if (x + y <= z || x + z <= y || y + z <= x) {
            return false;
        } else {
            return true;
        }
    }
}

发布了31 篇原创文章 · 获赞 1 · 访问量 164

猜你喜欢

转载自blog.csdn.net/weixin_44048403/article/details/105405003
今日推荐