diff --git a/Hello.java b/Hello.java index b8a5adfe3b425ec20719b83515964f3908bf759d..95f07dc6c46d3eea8474576c67668e6817ad3e51 100644 --- a/Hello.java +++ b/Hello.java @@ -15,4 +15,28 @@ public class Hello { return a+b; } + /** + * 判断给定的三个边长是否能构成等腰三角形 + * @param a 第一条边长 + * @param b 第二条边长 + * @param c 第三条边长 + * @return 如果是等腰三角形返回true,否则返回false + * @throws IllegalArgumentException 如果边长不是正数或不能构成三角形 + */ + public static boolean isIsoscelesTriangle(double a, double b, double c) { + // 检查边长是否为正数 + if (a <= 0 || b <= 0 || c <= 0) { + throw new IllegalArgumentException("所有边长必须为正数"); + } + + // 检查是否能构成三角形(任意两边之和大于第三边) + if (a + b <= c || a + c <= b || b + c <= a) { + throw new IllegalArgumentException("给定的边长无法构成三角形"); + } + + // 检查是否为等腰三角形(任意两边相等) + return Math.abs(a - b) < 1e-10 || + Math.abs(a - c) < 1e-10 || + Math.abs(b - c) < 1e-10; + } } \ No newline at end of file