Курс по Raku / Приложение 🆕 / Поток и функции / Управление на потока и логика / Exercises / Високосни години
Решение: Високосни години
Ето едно възможно решение на задачата.
Код
for 2000, 1900, 2024, 2023 -> $year {
my $leap = $year %% 400 || ($year %% 4 && !($year %% 100));
say "$year: { $leap ?? 'leap' !! 'common' }";
}🦋 Намерете програмата във файла leap-year.raku.
Изход
2000: leap
1900: common
2024: leap
2023: commonКоментари
Правилото се чете направо като булев израз: високосна е годината, която се дели на 400, или която се дели на 4, но не и на 100.
%%е проверката за делимост.1900се дели на 100, но не и на 400, така че е обикновена;2000се дели на 400, така че е високосна.Типът
Dateв Raku вече знае това правило. Той го предоставя като.is-leap-year— метод върху обект дата, така че създавате която и да е дата в годината (тук 1 януари) и я питате:for 2000, 1900, 2024, 2023 -> $year { my $leap = Date.new($year, 1, 1).is-leap-year; say "$year: { $leap ?? 'leap' !! 'common' }"; }
Упражнението, разбира се, е за това сами да напишете правилото.