Thuật toán kiểm tra năm nhuận

Bài tiếp theo trong series thuật toán và giải thuật này chúng ta sẽ tìm hiểu cách kiểm tra năm nhuận bằng ngôn ngữ C++. Trước khi vào bài mình muốn nhấn mạng rằng nội dung của bài mình chỉ hướng dẫn cách kiểm tra trong lập trình, mình sẽ không giải thích ý nghĩa của năm nhuận cũng như chu kì của nó mà chỉ bám sát vào định nghĩa mà người xưa đã đưa ra mà thôi, sau này khi bạn tiếp cận bất kì một bài toán nào cũng phải dựa vào định nghĩa hoặc quy luật mà bài toán đó đang áp dụng để lập trình.

1. Năm nhuận là gì?

Năm nhuận hay còn gọi là năm nhuần, là sự bổ sung thêm ngày và tháng để đảm bảo lịch phù hợp với các mùa của thời tiết. Theo lịch dương thì năm nhuân sẽ có tháng 2 là 29 ngày,còn theo lịch dương thì năm nhuận sẽ có thêm một tháng và ta hay gọi là tháng 13, mục đích họ tăng lên là để lịch phù hợp với các mùa.

Theo chu kì thì trái đất sẽ quay quanh mặt trời  tổng cộng 365 ngày 5 giờ 48 phút 46 giây, như vậy mỗi năm sẽ dư ra gần 6h nên cứ 4 năm chúng ta lại dư mất một ngày, và nó sẽ rơi vào tháng 2 nên tháng này ta sẽ có 29 ngày để bám sát với chu kì quay.

Nói tóm lại mình có khái niệm năm nhuận đơn giản như sau: Năm nhuận là năm chia hết cho 4, trường hợp nếu vừa chia hết cho 4 vừa chia hết cho 100 thì nó phải chia hết cho 400 thì mới gọi là năm nhuận. Trong lập trình chúng ta sử dụng định nghĩa này để xây dựng ứng dụng kiểm tra năm nhuận. Khái niệm này vẫn có nhũng lúc sai vì thực tế 4h 48 phút 46 giây nhân lên 4 không thể bằng 1 ngày được.

2. Thuật toán kiểm tra năm nhuận

Bám theo khái niệm năm nhuân là gì thì chúng ta có thuật toán kiểm tra năm nhuận như sau:

  • Bước 1: Nhập số n cần kiểm tra
  • Bước 2: Nếu n chia hết cho 100 và chi hết cho 400 thì nó là năm nhuận
  • Bước 3: Nếu n chia hết cho 4 thì là năm nhuận
  • Bước 4: Trả kết quả n không phải là năm nhuận

Hàm kiểm tra năm nhuận bằng C++

void nam_nhuan(int year)
{
	if (year % 100 == 0)
	
	{
		if (year % 400 == 0){
			cout << year << " la nam nhuan";
		}
		else{
			cout << year << " khong phai la nam nhuan";
		}
	}
	else if (year % 4 == 0) {
		cout << year << " la nam nhuan";
	}
	else{
		cout << year << " khong phai la nam nhuan";
	}
}

Hàm main C++

void main()
{
	int year;
	cout << "Nhap nam can kiem tra: ";
	cin >> year;
	
	nam_nhuan(year);
}

3. Lời kết

Về khái niệm năm nhuận là gì thì bạn có thể mạng để đọc ở một số trang lớn khác, nhưng về thuật toán trong lập trình thì thường người ta hay sử dụng cách mà mình trình bày ở trên, nghĩa là năm nhuận là năm chia hết cho 4, trường hợp nso chia hết cho 100 thì phải chia hết cho 400.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.