Помогите решить задачу по информатике: Требуется определить, является ли данный год...

0 голосов
41 просмотров

Помогите решить задачу по информатике:
Требуется определить, является ли данный год високосным. (Напомним, что год является високосным, если его номер кратен 4, но не кратен 100, а также если он кратен 400.)
Вот я тут попробовал решить в паскале:
var
a:integer;
begin
read(a);
if (((a mod 400)=0) and ((a mod 100)<>0)) or ((a mod 4)=0) then
write('YES')
else
write('NO');
end.
но если я ввожу число, кратное 100 но не кратное 400, то выводит YES, а нужно NO.
ПОМОГИТЕ РЕШИТЬ ПОЖАЛУЙСТА!!!
можно решить в pascal или в pascal ABC или в Python.


Информатика (147 баллов) | 41 просмотров
Дан 1 ответ
0 голосов

Замените условие на следующее:
if ((a mod 4=0)or ((a mod 100<>0) and (a mod 400=0))) then ...


(524 баллов)
0

небольшое уточнение: год высокосный, если он делится на 4 без остатка, но если он делится на 100 без остатка, то год не высокосный, однако если он делится на 400 без остатка, то год высокосный

0

поэтому в программе должно быть:

0

var a:integer;

0

и условие примет вид:

0

if ((a mod 4=0) or ((a mod 100 <>0) and (a mod 400 =0))) then ...

0

все остальное в вашей программе без изменений

0

всёравно пишет yes если писать 100

0

100 - это высокосный год

0

нет

0

уже отменили