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("谢谢使用,再见~");
}
}
浙公网安备 33010602011771号