计算三角形面积——海伦公式
海伦公式简介
海伦公式又译作希伦公式、海龙公式、希罗公式、海伦-秦九韶公式。它是利用三角形的三条边的边长直接求三角形面积的公式。表达式为:S=√p(p-a)(p-b)(p-c),它的特点是形式漂亮,便于记忆。
相传这个公式最早是由古希腊数学家阿基米德得出的,而因为这个公式最早出现在海伦的著作《测地术》中,所以被称为海伦公式。中国秦九韶也得出了类似的公式,称三斜求积术。
参考实现
/** * 使用海伦公式求解三角形面积 */ public class TriangleArea { public static void main(String[] args) { System.out.println("请输入三个整数作为三角形的三条边(非整数直接退出):"); Scanner sc = new Scanner(System.in); while (true) { try { int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); //检验边长 if (checkTriangle(a, b, c)) { //计算三角形面积 triangleAreaHeron(a, b, c); } else { System.out.println("输入的三个数字无法组成一个三角形,你小学数学是体育老师教的嘛!!!"); //一次不满足三角形规则重新输入 continue; } } catch (InputMismatchException e) { //非法输入不干了,直接退出 System.out.println("输入非法,退出程序!!!"); break; } } } /** * 计算三角形面积:海伦公式法 * * @param a 边1 * @param b 边2 * @param c 边3 */ public static void triangleAreaHeron(int a, int b, int c) { double p = (a + b + c) / 2; p = p * (p - a) * (p - b) * (p - c); double area = java.lang.Math.sqrt(p); System.out.println("由边长为 " + a + " " + b + " " + c + "组成三角形的面积是 " + area); } /** * 校验三条边长是否可以组合成一个三角形 * * @param a 边1 * @param b 边2 * @param c 边3 * @return */ public static boolean checkTriangle(int a, int b, int c) { //三角形的任意两条边长的和大于另外一个边边长 return (a + b > c) && (a + c > b) && b + c > a; } /* public static boolean checkTriangle(int a, int b, int c) { //三角形的任意两条边长的和大于另外一个边边长 return (a + b > c) && (a + c > b) && b + c > a ? true : false; }*/ /* public static boolean checkTriangle(int a, int b, int c) { //三角形的任意两条边长的和大于另外一个边边长 if ((a + b > c) && (a + c > b) && b + c > a) { return true; } return false; }*/ }
运行效果
请输入三个整数作为三角形的三条边: 2 1 3 输入的三个数字无法组成一个三角形,你小学数学是体育老师教的嘛!!! 3 4 5 由边长为 3 4 5面积是 6.0 0 0 0 输入的三个数字无法组成一个三角形,你小学数学是体育老师教的嘛!!! q 输入非法,退出程序!!!