Правило треугольника

  • 4
  • Недоступна
Любые ли три отрезка могут быть сторонами треугольника или не любые? Наверное, вы уже догадались (или вспомнили из школьной геометрии), что треугольник получится, только когда сумма длин двух любых сторон будет больше длины третьей стороны. Ну а теперь напишем код проверки 3 отрезков на пригодность для сторон треугольника.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (83)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Eugene Semenov5 уровень, Санкт-Петербург
пятница, 20:30
решил таким образом System.out.println("Треугольник "+(a+b>c?"":"не ")+"существует."); есть нюанс: по теореме сумма длин любых двух сторон в треугольнике больше длины третьей. значит достаточно сравнить сумму a и b и длину стороны c. но проверка выдает, что 4-е условие не проходит. как и в предыдущей задаче. и все-таки: нужно ли проверять ВСЕ три стороны? теорема одна:Любая сторона треугольника меньше суммы двух других сторон. А значит достаточно проверить только сравнить сумму первых с третьей. есть ли ситуации, когда это не действует?
Eugene Semenov5 уровень, Санкт-Петербург
пятница, 20:35
написали бы в условии, что хотят, чтоб мы сравнили последовательно все цифры и суммы!!! а так мой код верен и работоспособен, но не проходит проверку.
Артем Баранов5 уровень, Самара
пятница, 08:38
Всем кто мучается - почитайте разницу между операторами & и && Кейс проверки пишется в одну строчку if по сути.
Mikhail Naumenko5 уровень, Москва
16 сентября, 21:54
Решил через нахождение большей стороны а потом ее сравнения с суммой других)
Полина8 уровень
16 сентября, 09:21
В формулировке условия есть неточность - сказано "сумма любых двух сторон", а не "сумма всех пар сторон". Любой - это логическое "или", а не логическое "и". Спасибо тем, кто пояснил в комментариях )
Миша Небоярски5 уровень, Питер
14 сентября, 15:37
Немного вывело из себя то, что в некоторых задачах в выводе нужна точка, а в некоторых - нет. Логику всю прорешал правильно, а задача проверку не проходит потому что забыл долбанную точку! Чувствую себя как лягушонок кермит в истерике в такие моменты.
Дмитрий8 уровень, Санкт-Петербург
12 сентября, 00:41
Вот что тут не так? 4 условие не выполняется... if (c>=(a+b)) System.out.println("Треугольник не существует."); else if (b>=(a+c)) System.out.println("Треугольник не существует."); else if (a>=(b+c)) System.out.println("Треугольник не существует."); else System.out.println("Треугольник существует.");
Dima Kulik4 уровень, Киев
12 сентября, 19:00
можно еще проверку на ноль прикрутить
Кирилл9 уровень, Санкт-Петербург
вторник, 09:30
Нельзя, это избыточно будет. Если одна из сторон <= 0, то существование треугольника невыполнимо исходя из условия, указанного в задании
Dima Kulik4 уровень, Киев
10 сентября, 16:15
все же условие задачи пишут криво. Пример: 3, 2 и 1 имеет право на существование! Может картинку нарисовать?))
Миша Небоярски5 уровень, Питер
14 сентября, 15:33
пример имеет право на существование, но треугольник с такими длинами сторон не имеет права на существование - он выродится в отрезок длиной 3.
Андрей5 уровень, Москва
10 сентября, 11:56
пишу if(a<=b+c || b<=a+c || c<=a+b) System.out.println("Треугольник существует."); else System.out.println("Треугольник не существует."); а он мне выдает ошибку, не проходит тест по 4 условию, не подсвечивает несуществующий треугольник. весь мозг сломал. что я сделал не так,
Pavel4 уровень
13 сентября, 04:30
1. Логическое && используй 2. a<=b+c - скобки поставь и равенство не нужно
Полина8 уровень
16 сентября, 09:18
Спасибо за пояснение. В условии ошибка - сказано "любых двух сторон", а не "всех пар сторон". Любой - это логическое "или", а не логическое "и"
Mennn5 уровень, Нижнекамск
8 сентября, 18:51
не важно с какой попытки вы делаете задание, главное усвоить материал!!!
Alexey Prilessky7 уровень, Минск
1 сентября, 15:54
Каким образом я должен был знать, об && , если в лекции этого не было ??