UT源码 142
(1)设计三角形问题的程序
输入三个整数a、b、c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形),以及不构成三角形。(等腰直角三角形,判断为等腰三角形)
现在要求输入三个整数a、b、c,必须满足以下条件:
条件1 1≤a≤100 条件4 a<b+ c
条件2 1≤b≤100 条件5 b<a+ c
条件3 1≤c≤100 条件6 c<a+ b
String triangle(int a,int b,int c) 返回字符型
程序要求:
1)先显示:“请输入三角形的三条边:”
2)只要有不满足条件1,2,3之一,就返回“边的值不在范围内!”
3)只要有不满足4,5,6之一,就返回“不构成三角形”
4)根据边的情况分别返回:“等边三角形”“等腰三角形”“直角三角形”“一般三角形”
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Triangle { public static String triangle(int a, int b, int c) { if ((1 <= a && a <= 100) && (1 <= b && b <= 100) && (1 <= c && c <= 100)) if ((a < b + c) && (b < a + c) && (c < a + b)) if ((a == b) || (b == c) || (c == a)) if (a == b && b == c) return "等边三角形"; else { return "等腰三角形"; } else { if (isRightTriangle(a, b, c)) return "直角三角形"; return "一般三角形"; } else return "不构成三角形"; return "边的值不在范围内!"; } private static boolean isRightTriangle(double a, double b, double c) { List<Double> list = new ArrayList<>(Arrays.asList(a, b, c)); Collections.sort(list); if (Math.pow(list.get(2), 2) == Math.pow(list.get(1), 2) + Math.pow(list.get(0), 2)) return true; return false; } public static void main(String[] args) { String input = ""; Scanner scan = new Scanner(System.in); while (true) { System.out.print("请输入三角形的三条边【空格分割,回车退出】"); input = scan.nextLine(); String[] buf = input.split("\\s+"); if (input.equals("")) break; else if (buf.length == 3) { try { int a = Integer.valueOf(buf[0]); int b = Integer.valueOf(buf[1]); int c = Integer.valueOf(buf[2]); System.out.println(triangle(a, b, c)); } catch (Exception e) { System.out.println("请输入整数"); } } else System.out.println("格式错误"); } scan.close(); System.out.println("谢谢使用,再见~"); } }