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

  • 8
  • Недоступна
На планете Земля год длится 365 или 366 суток. Количество дней высчитывается по определенной формуле: високосным годом (366 суток) является год, который делится без остатка на 4 за исключением годов, которые кратны 100 и не кратны 400. Напишем программу, в которой выясним, високосный или обычный год ввёл пользователь с клавиатуры.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (394)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Алексей4 уровень, Красноярск
позавчера, 14:31
Можно же совсем без if, в одну строку решить:
System.out.println(((year%4==0 & year%100!=0)||(year%400==0))?"количество дней в году: 366":"количество дней в году: 365");
Andrew Perstniov6 уровень, Одесса
пятница, 02:55
хм, не знал про %, ввел int year и double = dYear, и чтоб узнать, делится ли на 0 без остатка, сравнивал, например, year/400 с dYear/400.0. Если равны - остатка нет
Volodymyr Bilenkyi5 уровень, Ivano-Frankivsk
19 сентября, 10:32
Три ошибки только потому, что написал "Количество", а не "количество".... Будьте внимательны!
Andrey Trots11 уровень, Минск
13 сентября, 11:10
Решается просто через конструкцию if-else-if (более подробно можно прочитать в книжке Герберт Шилдта Java.Полное руководство 10-е издание страница 134) 1) если остаток от деления введенного года на 400 (if (god%400 == 0)) сразу определяем, что год високосный (System.out.println("количество дней в году: 366");) (если это условие выполняется остальные if else не проверяются) 2) ставим else далее проверяем условие остаток от деления на 100( if (g%100==0) System.out.println("количество дней в году: 365");) (соответсвенно этот if уже проверяет 2 условия и то что год не делится без остатка на 400 и делится или не делится без остатка на 100, если делится без остатка на 100 то год не високосный, если делится с остатком используем следующий if) 3) следующий проверяет или делится год без остатка на 4 если делится то год високосный если нет, то не високосный. if (g%400 == 0) System.out.println("количество дней в году: 366"); else if (g%100==0) System.out.println("количество дней в году: 365"); else if(g%4 == 0) System.out.println("количество дней в году: 366"); else System.out.println("количество дней в году: 365");
Алексей Поверенный7 уровень, Одинцово
24 сентября, 07:14
придумал так же, только мне кажеться экономнее вывод на экран, только в самом конце написать, а между if просто g=365 или 366;
Станислав7 уровень, Москва
24 сентября, 13:26
А смысл было решение расписывать? В задаче подсказка четкая - пишет что делать.
Иван Наумик6 уровень, Омск
воскресенье, 01:08
Условие Ввести с клавиатуры год, определить количество дней в году. Результат вывести на экран в следующем виде: количество дней в году: x
Евгений5 уровень, Москва
понедельник, 15:23
Andrey Trots, зачем столько if-ов, можно проще: ... int countDays = 365; if ((year%400==0)||((year%100>0)&&(year%4==0))) countDays=366; System.out.println("количество дней в году: " + countDays); ...
Liudas P7 уровень, Kaišiadorys
7 сентября, 17:18
поправ после последнеи else x= 366 на x=355
Andrei Leushin8 уровень, Пинск
6 сентября, 15:41
объясните почему year%400==0 , понятно что деление идет по модулю, но почему равно нулю?
Machaon Black13 уровень, Одесса
11 сентября, 19:40
% - это операция вычисления остатка от деления. Запись year%400==0 означает, что год делится на 400 без остатка (остаток равен нулю)
Олег Корякин4 уровень, Санкт-Петербург
30 августа, 13:28
Решил задачу полностью по подсказке. Но до этого она успешно работала через if (year % 4 == 0) Но при этом мое решение не пригималось, как верное. WTF??
gex8 уровень, Москва
12 сентября, 11:47
так как year мог делится одновременно без остатка как на 4, так и на 100 - при делении на 100 без остатка будет не високосный год
Анна Миронюк6 уровень, Краснодар
19 августа, 08:57
Подсказка, в if применяется и "||" и "&&". В первом if указала все для вычисления високосного. в else только вывела sout для обычного года.
Alexander Mineyev8 уровень, Москва
6 августа, 19:36
да, интересная задача.....по условиям я разложил: но долго искал по %400 и тд.....
Дмитрий Сайкинов9 уровень, Пермь
22 июля, 17:04
ПОдскажите пожалуйста, как я могу входные значения проверить? Куда их вбивать? в терминале пишет ошибку, как можно исправить?
Дмитрий Сайкинов9 уровень, Пермь
22 июля, 17:08
Команда -javac и java -version работает
Rono22 уровень, Санкт-Петербург
23 июля, 07:59
Весь код покажите свой, можно в личку, чтобы тут не флудить. Если не разобрались ещё
Дмитрий Сайкинов9 уровень, Пермь
23 июля, 08:40
Не удается написать, превышен дневной лимит) Нужно чтобы в друзья добавили
Rono22 уровень, Санкт-Петербург
23 июля, 08:52
Вроде добавил =)