Оглавление:
Задача — Определить високосный год или нет
— программирование на Pascal, Си, Кумир, Basic-256, Python
Определить, является ли год, который ввел пользователем, високосным или невисокосным.
Високосные года делятся нацело на 4. Однако из этого правила есть исключение: столетия, которые не делятся нацело на 400, високосными не являются.
В високосном годе 366 дней, в обычном 365.
- Если год не делится на 4, значит он обычный.
- Иначе надо проверить не делится ли год на 100.
- Если не делится, значит это не столетие и можно сделать вывод, что год високосный.
- Если делится на 100, значит это столетие и его следует проверить его делимость на 400.
- Если год делится на 400, то он високосный.
- Иначе год обычный.
Проверки можно проводить последовательно, а можно группировать через логические операторы «И» и «ИЛИ». Поэтому способов решения задачи может быть несколько.
Pascal
// 1-й вариант:
var y: word;
begin
readln(y);
if y mod 4 <> 0 then writeln(‘Обычный’)
else
if y mod 100 = 0 then
if y mod 400 = 0 then writeln(‘Високосный’)
else writeln(‘Обычный’)
else writeln(‘Високосный’);
end.
// 2-й вариант:
var y: word;
begin
readln(y);
if (y mod 4 <> 0) or (y mod 100 = 0) and (y mod 400 <> 0) then
writeln(‘Обычный’)
else
writeln(‘Високосный’);
end. 1980
Високосный
1978
Обычный
Язык Си
// 1-й вариант:
#include <stdio.h>
main() {
int y;
scanf(«%d»,&y);
if (y%4 != 0) printf(«Обычный»);
else
if (y%100 == 0 && y%400 != 0) printf(«Обычный»);
else printf(«Високосный»);
printf(«n»);
}
// 2-й вариант:
#include <stdio.h>
main() {
int y;
scanf(«%d»,&y);
if (y%4 != 0 || y%100 == 0 && y%400 != 0) printf(«Обычный»);
else printf(«Високосный»);
printf(«n»);
} Python # 1-й вариант:
y = int(input())
if y % 4 != 0:
print(«Обычный»)
elif y % 100 == 0:
if y % 400 == 0:
print(«Високосный»)
else:
print(«Обычный»)
else:
print(«Високосный»)
# 2-й вариант:
if y % 4 != 0 or (y % 100 == 0 and y % 400 != 0):
print(«Обычный»)
else:
print(«Високосный»)
КуМир
| 1-й вариант:
алг високосный год
нач
цел n
ввод n
если mod(n,4) <> 0 то
вывод «Обычный год»
иначе
если mod(n,100) = 0 то
если mod(n,400) = 0 то
вывод «Високосный год»
иначе
вывод «Обычный год»
все
иначе
вывод «Високосный год»
все
все
кон
| 2-й вариант:
алг високосный год
нач
цел n
ввод n
если mod(n,4) <> 0 или mod(n,100) = 0 и mod(n,400) <> 0 то
вывод «Обычный год»
иначе
вывод «Високосный год»
все
кон 1100
Обычный год
1992
Високосный год
Basic-256
input y
if y%4 = 0 then
if y%100=0 and y%400 <> 0 then
print «365»
else
print «366»
endif
else
print «365»
endif