THUẬT TOÁN CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

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.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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.

Cùng chuyên mục:

Tìm các số chẵn lẻ bằng Queue và Stack

Tìm các số chẵn lẻ bằng Queue và Stack

Để làm được bài này các bạn cần có kiến thức về cấu trúc Queue…

Cài đặt hàng đợi Queue bằng mảng một chiều

Cài đặt hàng đợi Queue bằng mảng một chiều

Chúng ta sẽ cùng nhau tìm hiểu về cách cài đặt hàng đợi Queue bằng…

Cài đặt hàng đợi Queue bằng danh sách liên kết

Cài đặt hàng đợi Queue bằng danh sách liên kết

Chúng ta sẽ cùng nhau tìm hiểu về cách khởi tạo cấu trúc dữ liệu…

Hàng đợi Queue là gì? Cấu trúc dữ liệu và các cách cài đặt Queue

Hàng đợi Queue là gì? Cấu trúc dữ liệu và các cách cài đặt Queue

Trong hướng dẫn này mình sẽ giới thiệu các bạn một cấu trúc lưu trữ…

Bài tập kiểm tra số nguyên tố bằng Stack

Bài tập kiểm tra số nguyên tố bằng Stack

Chúng ta sẽ cùng nhau tạo một cấu trúc Stack với danh sách liên kết…

Bài tập chuyển đổi cơ số bằng Stack

Bài tập chuyển đổi cơ số bằng Stack

Trong hướng dẫn này mình sẽ thực hiện giải một bài toán chuyển đổi cơ…

Cài đặt Stack bằng mảng một chiều

Cài đặt Stack bằng mảng một chiều

Chúng ta sẽ lần lượt thực hiện tạo các hàm cơ bản cho Stack như:…

Cài đặt Stack bằng danh sách liên kết

Cài đặt Stack bằng danh sách liên kết

Chúng ta sẽ thực hiện lần lượt các thao tác trong Stack sử dụng danh…

Ngăn xếp Stack là gì? Cấu trúc và cơ chế hoạt động ra sao?

Ngăn xếp Stack là gì? Cấu trúc và cơ chế hoạt động ra sao?

Trong hướng dẫn này mình sẽ giới thiệu các bạn một cấu trúc lưu trữ…

Xóa Node khỏi cây đỏ đen

Xóa Node khỏi cây đỏ đen

Chúng ta sẽ cùng nhau tìm hiểu về cách xóa một Node khỏi cây đỏ…

Thêm Node mới vào cây đỏ đen

Thêm Node mới vào cây đỏ đen

Cây đỏ đen là gì? Cấu trúc của Red-Black Tree

Cây đỏ đen là gì? Cấu trúc của Red-Black Tree

Trong hướng dẫn này mình sẽ giới thiệu các bạn một cấu trúc dữ liệu…

Xóa Node khỏi cây nhị phân tìm kiếm

Xóa Node khỏi cây nhị phân tìm kiếm

Chúng ta sẽ cùng nhau thực hiện xóa Node có 1 con, Node có 2…

Tìm Node MAX và MIN trong cây nhị phân tìm kiếm

Tìm Node MAX và MIN trong cây nhị phân tìm kiếm

Chúng ta sẽ thực hiện một vài cách tìm ra giá trị MAX và MIN…

Xuất Node con và lá trong cây nhị phân tìm kiếm

Xuất Node con và lá trong cây nhị phân tìm kiếm

Trong hướng dẫn này mình sẽ giới thiệu các bạn cách xuất các Node con…

Tìm kiếm Node trên cây nhị phân tìm kiếm

Tìm kiếm Node trên cây nhị phân tìm kiếm

Trong hướng dẫn này mình sẽ giới thiệu các bạn cách tìm kiếm một Node…

Duyệt cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Chúng ta sẽ tìm hiểu lần lượt 6 cách duyệt cây nhị phân tìm kiếm:

Thêm Node vào cây nhị phân tìm kiếm

Thêm Node vào cây nhị phân tìm kiếm

Trong hướng dẫn này mình sẽ giới thiệu các bạn về cấu trúc dữ liệu…

Cấu trúc cây nhị phân là gì? Hoạt động ra sao?

Cấu trúc cây nhị phân là gì? Hoạt động ra sao?

Trong bài này mình sẽ giới thiệu các bạn một trong các cấu trúc dữ…

Gộp hai danh sách liên kết đôi

Gộp hai danh sách liên kết đôi

Chúng ta sẽ cùng nhau tìm hiểu về cách nối hai danh sách liên kết…

Top