Перейти к содержанию
Определить високосный год или нет
Просмотров 33к. Обновлено 29 октября 2021
Високосные года делятся нацело на 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
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
main() {
int y;
scanf("%d",&y);
if (y%4 != 0 || y%100 == 0 && y%400 != 0) printf("Обычный");
else printf("Високосный");
printf("n");
}
Python
високосный год 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
Input – Year
Output – Leap year or not
I have tried
Program LeapYear;
var
Year:Integer
begin
writeln('Insert year');
readln(Year)
if Year MOD 4 = 0 and Year MOD 100 = 0 and not Year MOD 400 = 0 then
begin
writeln(Year,'is leap year')
end
else
begin
writeln(Year,'is not leap year')
end
end.
But this is not working
Don Roby
40.5k6 gold badges91 silver badges112 bronze badges
asked Nov 24, 2012 at 20:47
1
Your algorithm is wrong. It should be:
if (year mod 400 = 0) or ((year mod 4 = 0) and not (year mod 100 = 0))
answered Nov 24, 2012 at 20:54
melpomenemelpomene
83.7k8 gold badges84 silver badges147 bronze badges
2
The IsLeapYear
function is already defined in the datih.inc
file, so you don’t need write your own version, only you must add the sysutils
unit.
answered Nov 26, 2012 at 14:51
RRUZRRUZ
135k19 gold badges356 silver badges483 bronze badges
3
Hope it helps:
if((a MOD 4) = 0) and ((a MOD 100) = 0) and ((a MOD 400) = 0) then y:=true
else y:=false;
Lab Lab
7719 silver badges34 bronze badges
answered May 20, 2018 at 17:35
1
Program LeapYear
;
Uses crt;
var
Year:Integer;
begin
clrscr;
writeln('Insert year');
readln(Year);
if (Year MOD 4 = 0)then
writeln(Year,'is leap year');
If (Year Mod 4 >=1 ) Then
writeln(Year,'is not leap year')
end.
answered Jun 18, 2018 at 11:47
1
https://uchitel.pro/%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B9-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80/
Задача № 1. Пользователь вводит год. Вывести на экран ответ, является ли год високосным.
Указание. Обычно каждый год, который делится на 4, — это високосный год, кроме лет столетий (делящихся на 100). Но среди последних год, делящийся на 400, также считается високосным.
Посмотреть ОТВЕТ и РЕШЕНИЕ
Задача № 2. Пользователь вводит целое число. Если оно является четным и при этом не находится между 10 и 20, то вывести на экран его квадрат. В противном случае напечатать исходное число.
Посмотреть ОТВЕТ и РЕШЕНИЕ
Задача № 3. Пользователь вводит целое число. Программа должна ответить, четным или нечетным является это число.
Посмотреть ОТВЕТ и РЕШЕНИЕ
Задача № 4. Пользователь вводит целое число. Программа должна ответить, четным или нечетным является это число, делится ли оно на 3 и делится ли оно на 6.
Посмотреть ОТВЕТ и РЕШЕНИЕ
Задача № 5. Пользователь вводит коэффициенты а, b и с квадратного уравнения ах2 + bх + с = 0. Вывести на экран все корни этого уравнения или сообщение о том, что их нет. Отдельно рассмотреть случай, когда корни совпадают.
Посмотреть ОТВЕТ и РЕШЕНИЕ
Задача № 6. Пользователь вводит два числа. Если первое число меньше второго, то вычислить их сумму, иначе — разность первого и второго.
Посмотреть ОТВЕТ и РЕШЕНИЕ
Задача № 7. В компьютер вводится число (например, дальность выстрела). Если оно находится в интервале от 28 до 30, то напечатать текст ПОПАЛ, иначе — НЕ ПОПАЛ.
Посмотреть ОТВЕТ и РЕШЕНИЕ
Задача № 8. В компьютер вводится число (дальность выстрела). Если оно находится в интервале от 28 до 30, то напечатать текст ПОПАЛ; если оно больше или равно 30, то напечатать ПЕРЕЛЕТ; если оно больше 0, но меньше или равно 28, то НЕДОЛЕТ; если меньше или равно 0 — НЕ БЕЙ ПО СВОИМ.
Посмотреть ОТВЕТ и РЕШЕНИЕ