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

  • 4
  • Недоступна
Любые ли три отрезка могут быть сторонами треугольника или не любые? Наверное, вы уже догадались (или вспомнили из школьной геометрии), что треугольник получится, только когда сумма длин двух любых сторон будет больше длины третьей стороны. Ну а теперь напишем код проверки 3 отрезков на пригодность для сторон треугольника.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (249)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
JeDiFox 4 уровень, Мытищи
около 5 часов назад
нееее,типо треугольник существует всегда пока его одна из сторон не равна нулю,потому что да же если одна из сторон будет в минусе все равно треугольник построить можно,кек,условие что дается в подсказке бред🦝
fireowl 4 уровень, München
12 января, 08:29
if ((a+b) > c) { System.out.println("Треугольник существует."); } else if ((a+c) > b) { System.out.println("Треугольник существует."); } else if ((c+b) > a) { System.out.println("Треугольник существует."); } else { System.out.println("Треугольник не существует."); } в чём ошибка? мне не совсем понятно
Святослав 4 уровень, Одесса
14 января, 16:46
Какую ошибку выдает? Ошибка в конкретной строчке, или невыполнение одного из условий?
Dankon Holdes 4 уровень, Санкт-Петербург
позавчера, 05:12
Ошибка в том, что ты проверяешь каждый возможный вариант треугольника в отдельном операторе If. В задаче говориться "Если хотя бы в одном случае сторона окажется больше либо равна сумме двух других, то треугольника с такими сторонами не существует." т.е. тебе нужно проверить все стороны в рамках одного оператора. Подсказка " используй логический оператор".
DDAlex 4 уровень, Алматы
вчера, 18:06
Короче, я вот так решил, всё работает: if (a >= (b+c) || b>= (a+c) || c>= (a+b)) System.out.println("Треугольник не существует."); else System.out.println("Треугольник существует."); Долго голову ломал почему не работает у тебя. Короче забил треугольник в твоём коде и в своём 37, 28, 6 Он не существует - сразу видно. Одна сторона больше двух других 37>(28+6). Твой код пишет, что существует, а у меня норм - не существует. Я уже с этим сталкивался - if else коварен, выше коммент написал Dankon Holdes, он прав - надо в рамках одного оператора сравнивать и писать с логическими операторами. Здесь можно ИЛИ | применить или укороченное ИЛИ || Я думаю, скорее всего у тебя разбито на несколько операторов if и он проверяет первое условие. Всё с тем же несуществующим треугольником 37, 28, 6 Два варианта комбинаций этих цифр будут удовлетворять твоим первым трём условиям, вот он и пишет, что он существует. Он проверил, что 37+28>6 з*е*ись и тут же вывел надпись, не проверяя в комплексе все вариации твоей конструкции. Ввёл другой треугольник с твои кодом 4, 7, 15, чтоб первое условие твоё не выполнилось, но зато второе выполнилось, один фиг написал существует. Значит программа завершилась на втором if else твоём, дальше не проверяла и вывела, что существует. Короче какой не введи, он будет существовать. Единственный вариант, когда с твоим кодом он всё таки не будет существовать это 0 0 0, у тебя существует даже если 0 0 5 будет. Короче, точно всё дело в разрозненных циклах else if Полезная штука, что ты так написал код, я теперь хоть сам разобрался.
Rodion 7 уровень
10 января, 16:57
Ввод с клавиатуры + цикл с И + сумму 2 сторон в цикле можно через метом Суммы задать, чтобы решение было красивым и за одно повторить, то что проходили.
oneDollarGourmet 8 уровень
10 января, 13:20
будет оператор И , а не ИЛИ обратите внимание на Если хотя бы в одном случае сторона окажется больше либо равна сумме двух других, то треугольника с такими сторонами не существует. Сам не обратил внимание и тупил
DDAlex 4 уровень, Алматы
вчера, 18:12
У меня с ИЛИ прекрасно работает прога, даже с укороченным ИЛИ: if (a >= (b+c) || b>= (a+c) || c>= (a+b)) System.out.println("Треугольник не существует."); else System.out.println("Треугольник существует.");
Алексей 5 уровень
26 декабря 2020, 01:07
Кто как считал 3 числа с клавиатуры, напишите. Интересно как короче всего это сделать
через Bufferedreader
макс янов 6 уровень, Казань
7 января, 19:05
Bufferedreader возможно лучше но чтобы короче используй Scanner
Mikhail 15 уровень, Москва
22 декабря 2020, 17:46
Кто-нибудь пробовал решать с помощью итератора, который сам будет перебирать стороны и сравнивать с суммой других? Прописывать вручную (a+b<=c)||(a+c<=b)||(b+c<=a) как-то немного стыдно...
Gaziz 10 уровень, Уфа
31 декабря 2020, 02:28
я так же сделал
Елизавета 4 уровень
10 января, 14:18
покажите плиз
Super Style 7 уровень, Москва
9 декабря 2020, 21:00
if (a + b > c && a + c >b && c + b > a)
Dmitry Tolstov 5 уровень, Москва
1 декабря 2020, 20:56
Долго мучался из-за забытых точек в выводе результата на экране. :-)) Мобильная версия ничего не подсказывала. В Web-версии сразу упомянули.
Roman 4 уровень, Харьков
1 декабря 2020, 19:49
мб кому поможет: String result = условие1 ИЛИ условие2 ИЛИ условие3 ? "Треугольник существует.": "Треугольник не существует."; System.out.println(resut); так в одну строка получается
Konstantin Stepanyuk 6 уровень, Красноярск
9 декабря 2020, 17:05
поправка - И, все три условия тогда существует, хотя наверное смотря какие условия =)
Настя 4 уровень, Одесса
29 ноября 2020, 09:48
Решила задачу "От обратного", используя оператор | ("или"). Так задача прошла тестирование на все мои условия и выдает правильный результат.