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.

GIẢM GIÁ CUỐI TUẦN

Nhân dịp sinh nhật Cường ngày 18/08, mình giảm giá cực mạnh các khóa học fedu đến hết tuần này, các bạn tranh thủ nhé :)

Nguồn: freetuts.net

TỰ TẠO COMBO ĐỂ TIẾT KIỆM CHI PHÍ

Nếu bạn muốn tự tạo combo theo ý mình thì hãy sử dụng chức năng dưới đây, nó cho phép bạn chọn bất kì khóa học nào và cuối cùng là nhấn vào nút tạo combo, nếu mua càng nhiều thì chi phí càng rẻ.

Lập trình Backend

Lập trình Frontend

Thiết kế - Đồ họa