Условие задачи :
Треугольник задан длинами сторон. Найти радиус вписанной и описанной окружностей.
Тесты :
a | b | c | ||
3 | 4 | 5 | 1 | 90 |
2 | 2 | 6 | Не существует | Не существует |
3.1 | 4.1 | 5.1 | 1.033199 | 102.970967 |
Код программы :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import java.util.*; import java.lang.*; import java.io.*; import java.math.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner x = new Scanner(System.in); double a,b,c ; a = x.nextDouble(); b = x.nextDouble(); c = x.nextDouble() ; if (a + b >= c && b + c >= a && a + c >= b) { double p = (a + b + c)/2; double S = Math.sqrt(p * (p - a) * (p - b) * (p - c)); double r = S/p; double R = (a*b*c)/4*S; System.out.format("Радиус вписанной окружности равен = %f\n",r); System.out.format("Радиус описанной окружности равен = %f ",R); } else { System.out.print("Не существует"); } } } |
Алгоритм :
Проверяем, или образуют данные стороны треугольник. В треугольнике сумма длин любых двух сторон больше длины третьей (или равна её длине, если треугольник вырожденный)
15 |
if (a + b >= c && b + c >= a && a + c >= b) |
Если условие не выполняется ,сообщаем об этом пользователю :
26 |
System.out.print("Не существует"); |
Если треугольник существует, проводим следующие вычисления (Порядок важен). :
- Вычисляем полупериметр треугольника : =
- Находим площадь по формуле Герона : =
- Вычисляем радиус вписанной окружности по формуле : =
- Вычисляем радиус описанной окружности по формуле : =
Работающая версия программы на Ideone.con :
Работу зачёл, но пришлось доделывать за Вас:
— Удалил в названии одну точку и вставил другую
— Убрал кириллицу из permalink
— Убрал категорию линейные алгоритмы
— Убрал пустые строки в коде