Реализовать метод fight

  • 4
  • Недоступна
Тео Баслим, полковник в отставке, в юности участвовал в боях, и теперь ему стало скучно. Он узнал, что его соседка Светочка Валерьевна завела полтысячи котов, и решил предложить ей устраивать бескровные кошачьи бои (на кровные она бы не пошла). Дело за малым: нам нужно реализовать механизм драки котов в зависимости от их веса, возраста и силы.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (249)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Zhenya Sviridov5 уровень, Санкт-Петербург
позавчера, 15:45
Создал переменную инт=0; Если параметр первого кота больше параметра другого, то инт +1, иначе -1. И так с каждым параметрам. В итоге если инт > 0 то return true, иначе false. Надеюсь мое описание поможет!
Alexey Tishevich5 уровень, Минск
позавчера, 14:13
Две попытки, в 1й дебажил правильность работы логики - не убрал парамметры, обидно. Спасибо за помощь.
Дмитрий8 уровень, Краснодар
позавчера, 11:16
11 попыток. Каждая попытка приводила к одним и тем же результатам, только код был написан разными вариациями.
IceBerg41 уровень, Кривой Рог
позавчера, 14:49
Значит плохо тестировал, в раздел "Помощь" эта задача попадает каждый день, но я ещё не видел решения, которое бы корректно проходило все тесты, и не принималось валидатором.
Дмитрий8 уровень, Краснодар
позавчера, 18:03
Просто не оптимальный код, думаю.
Татьяна9 уровень, Москва
пятница, 07:41
Решила вообще без условий, счётчиков, доп.переменных и т.п. У класса Integer есть замечательный метод compare, сравнивающий два числа. Если первое больше - возвращает +1, если числа равны - возвращает 0, если первое число меньше второго - возвращает -1. Соответственно - равные параметры счёт не изменяют, параметры больше, чем у второго кота - счёт "победивших" параметров увеличивают, а меньшие - уменьшают. Если сумма такой проверки всех трех параметров больше нуля - кот "победил". :) п.с.: сам код специально не указываю, надеюсь это не сочтут "выкладыванием решения".
Сергей Симагин6 уровень, Днепр
5 ноября, 21:59
Как выполнить последний пункт? " Если ничья, то метод fight должен возвращать false." В конце ставлю и не пропускает последний пункт: if (a>b) return true; else return false;
Дина5 уровень, Харьков
5 ноября, 21:43
не понятно, почему не принимает if (this.age+this.strength+this.weight>anotherCat.age+anotherCat.weight+anotherCat.strength) return true; else return false, а с счетчиком чутли не в 50 строк приняло(
IceBerg41 уровень, Кривой Рог
7 ноября, 13:15
Потому что в условии написано "Нужно сравнить каждый критерий по отдельности, и победителем будет тот, у которого больше "победивших" критериев."
Kirill8 уровень, Краснодар
5 ноября, 15:59
Сейчас ее быстро решу, думал я. Взялся и быстренько решил с 13 попытки. Невнимательность, она такая))
emadzloy6 уровень, Новосибирск
5 ноября, 05:41
Сделал 3 "лишние" попытки из-за невнимательности -_-
Михаил5 уровень, Санкт-Петербург
4 ноября, 17:48
4 дня сидел, и вот что я имею сказать: тетрарный оператор чудовищно усложняет читаемость кода. Счетчики в этом алгоритме никчему. Можно обойтись и существующими переменными без ввода новых. И все-таки залез в обсуждения после 4х дней агонии. Во время агонии перерыл Шильдта и изучил конструкторы (которые тут не нужны - вернее он пустой), а также сеттеры и геттеры. И они не понадобились. Аллилуйя - я понял что хотел сказать учитель. Сам алгоритм сначала рисуется на клеточной тетрадке в виде плюсиков и минусов и перебираются все комбинации. Реализация - элементарна. Самое главное - не забыть поставить возврат из метода. Без IntelliJ IDEA так и было бы 40 попыток. А так всего одна. Пользуйтесь IntelliJ IDEA
Михаил5 уровень, Санкт-Петербург
4 ноября, 18:20
Стал дальше решать и понял, что многого не знаю. Действительно можно решить с тернарными операторами. и гораздо проще, чем с IF.
Roman Doroshenko8 уровень, Гомель
3 ноября, 07:28
Пошел по пути сравнения среднего арифметического кошачих показателей. Не прокатило. Интересно, почему? Из за этого условия? "Нужно сравнить каждый критерий по отдельности, и победителем будет тот, у которого больше "победивших" критериев."
Alexey Tishevich5 уровень, Минск
позавчера, 12:56
Может быть кейс когда один параметр 5 остальные два == 0, но при этом 2й кот выйграет по двум другим показателям.
Roman Doroshenko8 уровень, Гомель
позавчера, 14:23
Ну да. Нулевой кот в вакууме )))