Количество дней в году

  • 3
  • Недоступна
На планете Земля год длится 365 или 366 суток. Количество дней высчитывается по определенной формуле: високосным годом (366 суток) является год, который делится без остатка на 4 за исключением годов, которые кратны 100 и не кратны 400. Напишем программу, в которой выясним, високосный или обычный год ввёл пользователь с клавиатуры.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (155)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Kovis4 уровень, Санкт-Петербург
вчера, 09:33
для расширения кругозора прочитал еще дополнительно и про "0" год. для решения задачи это не имеет значения, но нулевого года в календаре нет, но есть в ISO8601 https://ru.wikipedia.org/wiki/0_%D0%B3%D0%BE%D0%B4
Дмитрий4 уровень, Казань
среда, 11:33
Мне помогло вот такое разложение на подзадачки 1 - Если год не делится на 4, значит он обычный. 2 - Иначе надо проверить не делится ли год на 100. 3 - Если не делится, значит это не столетие и можно сделать вывод, что год високосный. 4 - Если делится на 100, значит это столетие и его следует проверить его делимость на 400. 5 - Если год делится на 400, то он високосный. 6 - Иначе год обычный.
Denis5 уровень
11 февраля, 17:56
ПОЧЕМУ, ПОЧЕМУ 1700, 1800 и 1900 не високосные года!!??? Любое число которое делится на 4 это високосный год!!! Я не понял логики этой задачи как ни старался. Объясните кто-нибудь.
Denis5 уровень
11 февраля, 18:07
Черт подери!!! пришлось прочитать в нете статью про високосные года, чтобы все на место встало. И сразу решение пришло.
Vladislav Polekha8 уровень, Penza
7 февраля, 21:34
я не понимаю условие. поясните, что значит в оставшихся годах после этого??
VZone4 уровень
6 февраля, 06:10
Может кому поможет (решал без оператора "%", просто о нём не знал). Использовал типы int и double для нахождения чисел, которые потом сравнивались в условных операторах if и else. Чтобы double заработал и учитывал больше знаков после запятой, нужно в формулу к целому числу допечатать ".0" (например: 4.0). Успехов Вам
Tanarri10 уровень
3 февраля, 09:57
в теории ничего не говорится об операторе % остаток от деления, однако там так же ничего не говорится об операторах "-"(вычитание), "/"(деление), что не мешает их использовать.
2 февраля, 17:26
ИМХО в теории ничего не говорили про арифметический оператор % - остаток от деления. Да и про логические операторы && - "и" , II - "или" , или сравнения - != - "не равно" . http://proglang.su/java/operators - тут можно вычитать про операторы. Всем бобра. =0
Andrey Zaits7 уровень, Санкт-Петербург
1 февраля, 22:55
if (a % 4 == 0 && (a % 100 != 0 || a % 400 == 0))
4 февраля, 11:46
круто
Sergey Rudeshko5 уровень, Москва
4 февраля, 18:38
спасибо, помог))
Александр4 уровень
27 января, 21:15
Если хочется обойтись без оператора mod (обозначается %), то можно вместо конструкции if (year % 400 == 0) использовать if (year / 400 * 400 == year) Здесь используется тот факт, что в java оператор "/" делит целые числа нацело.
Алексей6 уровень
27 января, 18:54
Тут я пошел по простому пути: написал с помощью конструкции if (..) else if () else if () - условия, которые перечислены в подсказке и всё заработало Там очень логично в самом деле