Карманный телепорт

  • 17
  • Недоступна
В классе Solution константа INVENTION_DAY содержит дату изобретения нового популярного гаджета — карманного телепорта. Реализуй метод isTeleportInvented, который в качестве параметра принимает дату и сравнивает ее с INVENTION_DAY. Если переданная дата следует после даты изобретения, нужно вывести
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (64)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #3056149
Уровень 17, Georgia
вчера, 08:47
Объясните пожалуйста, что они имели ввиду в правильном решении в скобках цикла while)
Юлия
Уровень 33, Москва, Россия
15 июня, 13:44
код работает, валидатор не пропускает с формулировкой public static void main(String[] args) { Calendar currentDay = Calendar.getInstance(); while (!isTeleportInvented(currentDay)){currentDay.add(Calendar.YEAR,10); } } static boolean isTeleportInvented(Calendar currentDay) { if(currentDay.after(INVENTION_DAY)) {System.out.println( INVENTED ); return false;} else {System.out.println( NOT_INVENTED ); return true; } }
Viacheslav Paninskii
Уровень 25, Russian Federation
21 июня, 13:02
return false и true местами поменяй.
Юлия
Уровень 33, Москва, Россия
21 июня, 18:08
меняла в разных комбинациях))) не пропускал валидатор, видимо какой то глюк был- в итоге принял первоначальный вариант, но спасибо))
Стас
Уровень 26, Уфа
26 мая, 16:37
Админы, сделал задачу через for, согласен, что такой вариант объемнее, но вполне работоспособен, а валидатор не пропустил по тайм ауту. Ай яй яй!
Lyokha Blagodatskikh
Уровень 29, Ural, Russian Federation
23 мая, 06:11
Лайк автору задачи за фантазию ) прям зашло )
Lyokha Blagodatskikh
Уровень 29, Ural, Russian Federation
23 мая, 06:10
А я ещё в интернете вот такой вариант нашел, чот первым не пришло в голову испоьзовать методы before и after класса Date применимо к классу Calendar. if (currentDay.compareTo(INVENTION_DAY) >= 0) - кстати это наверное более хорошее решение, ибо если человек придёт даже в миллисекунду точно ко времени изобретения телепорта, он его получит. А прикиньте, чел пришёл за час до изобретения телепорта, а ему сказали 10 лет ждать ) Жалко человека (
cnsler
Уровень 40, Калининград, Россия
16 мая, 14:18
Вопрос Админам: приняв во внимание "правильное решение" (через метод after()), верно ли полагаю, что считаете справедливым отправить пришедшего в день изобретения ждать еще десять лет?)))
Anonymous #00111111
Уровень 23, Москва, Russian Federation
17 мая, 10:39
я из-за этого написал
currentDay.getTimeInMillis() >= INVENTION_DAY.getTimeInMillis()
но, строго говоря, там все одно до миллисекунды сравниваются и поэтому, даже если он раньше на полсекунды придет, то отправиться в ожидание еще на десятку лет... пологаю, что к некоторому времени, изобрели не карманную машину времени, и можно просто скакать по 10 лет до изобретения нормального компактного гаджета.
Вячеслав
Уровень 48, Санкт-Петербург, Россия
20 апреля, 18:08
Как же приятно решать задачу, когда условие написано нормально)
Юлия
Уровень 26, Ростов-на-Дону, Russian Federation
23 марта, 12:20
Очень легкая задача))) Но так как она медиум, приятно думать, что это я такая умная 😁 Решила через цикл while и методы after и before
Anonymous #2969072
Уровень 26, Самара, Russian Federation
9 марта, 16:48
Если считаете что у вас были в жизни разочарования, просто знайте, что 9 марта 2192 года человеку откажут в персональном телепорте всего за 3 месяца до его изобретения, с формулировкой : "приходите через 10 лет"
Владимир
Уровень 48, Тель-Авив, Израиль
12 апреля, 12:13
🤣🤣🤣
Денис
Уровень 27, Омск, Russian Federation
22 апреля, 08:15
😁😁😁
cnsler
Уровень 40, Калининград, Россия
16 мая, 14:14
Если реализовать как в "правильном" решении через метод after(), а не через before(), то еще бОльшим разочарованием будет прийти в день изобретения)))
Владимир
Уровень 25, Минск, Беларусь
30 мая, 12:54
cnsler, а проверить свои убеждения на практике? Методы after(obj) и before(obj) эквивалентны compareTo(obj) > 0 и compareTo(obj) < 0 соответственно. Поэтому большое разочарование будет прийти накануне в 23:59:59, если конечно откроют)
cnsler
Уровень 40, Калининград, Россия
30 мая, 15:12
ну а чего Вы ожидали? в таком случае вполне справедливо, ибо Вы "пришли" ДО "изобретения" )) p.s. честно сказать, не совсем понял, в чем Ваша претензия на счет моих "убеждений".. если Вас успокоит, то все "проверено, гарантирую" (с))) логичнее применять метод before()
Владимир
Уровень 25, Минск, Беларусь
30 мая, 15:32
Извините, но не улавливаю именно вашу логику предпочтения before(). Имхо, существенной разницы нет, что использовать: before() или after(). A.before(B) == B.after(A)
cnsler
Уровень 40, Калининград, Россия
30 мая, 16:43
чтобы не постить решение задачи, написал Вам в ЛС
Владимир
Уровень 25, Минск, Беларусь
30 мая, 20:49
Админ/модератор, Если предполагается, что решение данной задачи должно обрабатывать ситуацию currentDay == INVENTION_DAY, то «правильное решение» не корректно. Для того чтобы корректно обрабатывать 0 (currentDay == INVENTION_DAY), нужно, чтобы метод isTeleportInvented() в части выражения after() или before() всегда возвращал false для 1 или -1 - т.к. compareTo() > 0 и compareTo() < 0 – строгие неравенства). Иначе true для (0 и -1) или (0 и 1) соответственно, чтобы не входить в цикл while (!isTeleportInvented(currentDay)). В данном же «правильном решении», метод isTeleportInvented() возвращает true для 1, а false – для 0 и -1. P.S. спасибо cnsler, что заострил внимание и побудил взглянуть глубже
Евгений Train Driver в Moscow Underground
14 февраля, 17:33
Решилась легко, но под конец дня мозг пришлось поднапрячь)