👨?💻博客主页:@花无缺
欢迎 点赞👍 收藏? 留言📝 加关注?!
本文由 花无缺 原创收录于专栏 【洛谷算法题】
给出三条线段 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
3 4 5
Right triangle
6 10 6
Obtuse triangle
Isosceles triangle
1 14 5
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();
}
}
这个题考察了简单的数学知识,结合选择结构,我们可以很轻松的做出来。
🌸欢迎
关注
我的博客:花无缺-每一个不曾起舞的日子都是对生命的辜负~
🍻一起进步-刷题专栏:【洛谷算法题】
💻Java题解同步仓库:https://github.com/huawuque404/Java-solution
🥇往期精彩好文:
📢【CSS选择器全解指南】
📢【HTML万字详解】
你们的点赞👍 收藏? 留言📝 关注?
是我持续创作,输出优质内容
的最大动力!
谢谢!