Задачу решил методом проб, ошибок и гугла. Но не совсем разобрался с математикой.
В високосном году - 366 дней, тогда как в обычном - 365.
1) если год делится без остатка на 400 это високосный год;
2) в оставшихся годах после этого, если год делится без остатка на 100, то это обычный год;
3) в оставшихся годах после этого, если год делится без остатка на 4, то это високосный год;
4) все оставшиеся года не високосные.
Так, годы 1700, 1800 и 1900 не являются високосными, так как они кратны 100 и не кратны 400.
Годы 1600 и 2000 - високосные, так как они кратны 100 и кратны 400.
Годы 2100, 2200 и 2300 - не високосные.
Если выполнить действия по порядку условия получится ничего. Потому у меня возник вопрос, почему сначала необходимо делить на 4 == 0, потом на 100 !=0 и делить на 4 == 00 и 400 == 0? Просто какой-то хаос в моих глазах.
CilitBang
25 уровень
Вопрос по математике задачи
Решен
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
akujava
22 мая 2019, 17:27
воу-воу, погодь
просто двигаемся сверху вниз по пунктам задачи:
1) если делится нацело на 400, то високосный
2) если оставшиеся года делятся на 100, то обычный
3) если оставшиеся года делятся на 4, то високосный
4) все остальные обычные
0
CilitBang QA в КЕФИР!
22 мая 2019, 17:46
Так и делал. Итог - ошибка на ошибке.
0
IceBergMaster
22 мая 2019, 17:23
Это с чего вдруг нужно сначала делить на 4 == 0? Код хоть покажи
0
CilitBang QA в КЕФИР!
22 мая 2019, 17:46
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String year = reader.readLine();
int year1 = Integer.parseInt(year);
if (year1 % 4 == 0 && year1 % 100 != 0)
System.out.println("количество дней в году: 366");
else if (year1 % 4 == 0 && year1 % 400 == 0)
System.out.println("количество дней в году: 366");
else
System.out.println("количество дней в году: 365");
}
}
0
IceBergMaster
22 мая 2019, 17:57
Ну так тоже всё логично, хотя и запутаннее. Строго по условию проще, всё там работает.
0
CilitBang QA в КЕФИР!
22 мая 2019, 18:00
По условию пробовал, коллеги по цеху тоже пробовали - не проходит. В логичности я уже разобрался)
0
IceBergMaster
22 мая 2019, 18:05решение
Посмотрел свое решение, проверка пройдена
+7
CilitBang QA в КЕФИР!
22 мая 2019, 18:12
Спасибо, разобрался
0