1. Bài toán:
Yêu cầu: Năm nhuận là những năm chia hết cho 400 hoặc là những năm chia hết cho 4 nhưng không chia hết cho 100 và 400. Đặc biệt, những năm chia hết cho 3328 được đề xuất là năm nhuận kép. Với số nguyên dương n nhập từ bàn phím, em hãy đưa ra màn hình thông báo “Không là năm nhuận” nếu n không phải là năm nhuận; “Năm nhuận” nếu n là năm nhuận và “Năm nhuận kép nếu n là năm nhuận kép”.
- Input: Nhập năm
- Output: In ra màn hình năm nhuận, năm không nhuận, năm nhuận kép
2. Giải thuật:
Bước 1. Đọc giá trị của năm từ bàn phím hoặc từ một biến đã được khai báo
Bước 2. Sử dụng toán tử chia hết để kiểm tra xem năm có chia hết cho 3328 hay không. Nếu chia hết, in ra "Năm nhuận kép" và dừng chương trình. Nếu không chia hết, tiếp tục bước 3.
Bước 3. Sử dụng toán tử chia hết để kiểm tra xem năm có chia hết cho 400 và không chia hết cho 100 hay không. Nếu chia hết, in ra "Năm nhuận" và dừng chương trình. Nếu không chia hết, tiếp tục bước 4.
Bước 4. Nếu không chia hết, in ra "Không là năm nhuận" và dừng chương trình.
3. Code Python:
n = int(input("Nhập số năm: "))
if n % 3328 == 0:
print("Năm nhuận kép")
elif n % 400 == 0 or (n % 4 == 0 and n % 100 != 0):
print("Năm nhuận")
else:
print("Không là năm nhuận")
4. Giải thích code :
Dong code |
Ý nghĩa |
n = int(input("Nhập số năm: ")) |
Là lệnh nhập số năm từ bàn phím và ép kiểu về số nguyên. |
if n % 3328 == 0: print("Năm nhuận kép") |
Kiểm tra xem năm có chia hết cho 3328 không, nếu chia hết thì là năm nhuận kép. |
elif n % 400 == 0 or (n % 4 == 0 and n % 100 != 0): print("Năm nhuận") |
Kiểm tra xem năm có chia hết cho 400 hoặc là chia hết cho 4 nhưng không chia hết cho 100 không, nếu chia hết thì là năm nhuận. |
else: print("Không là năm nhuận") |
Nếu không thì không phải là năm nhuận. |
5. Kết Quả Python:
Nhập số năm: 2000
Năm nhuận
Kết luận: Dưới đây là một số bộ test với các trường hợp khác nhau:
Năm 2000 (năm nhuận)
Năm 2008 (năm nhuận)
Năm 1900 (không là năm nhuận)
Năm 3328 (năm nhuận kép)
Năm 1575 (không là năm nhuận)
Không có nhận xét nào:
Đăng nhận xét