Câu hỏi: Viết chương trình nhập hai số tự nhiên Y1, Y2 là số năm, Y2 > Y1. Tính xem trong khoảng thời gian từ năm Y1 đến năm Y2 có bao nhiêu năm nhuận. Áp dụng tính xem trong thế kỉ XXI có bao nhiêu năm nhuận.
Lời giải:
Cách 1:
Dựa vào kiến thức đã học để viết chương trình
Để kiểm tra 1 năm có phải năm nhuận hay không, cần tuân theo 1 trong 2 nguyên tắc sau đây.
- Năm nhuận là năm chia hết cho 400
- Năm nhuận là năm chia hết cho 4 nhưng không chia hết cho 100
Để tính xem trong thế kỉ XXI có bao nhiêu năm nhuận, nhập Y1 = 2001 và Y2 = 2100.
Cách 2 viết trong Python:
def is_leap_year(year):
if year % 400 == 0:
return True
elif year % 100 == 0:
return False
elif year % 4 == 0:
return True
else:
return False
Y1 = int(input("Nhập năm Y1: "))
Y2 = int(input("Nhập năm Y2: "))
leap_years = []
for year in range(Y1, Y2 + 1):
if is_leap_year(year):
leap_years.append(year)
if len(leap_years) > 0:
print("Các năm nhuận trong khoảng thời gian từ Y1 đến Y2 là:", leap_years)
else:
print("Không có năm nhuận nào trong khoảng thời gian từ Y1 đến Y2.")