Trong phần này, chúng ta sẽ thấy cách kiểm tra một số là chẵn hay lẻ mà không sử dụng bất kỳ câu lệnh điều kiện nào (như <, <=, !=, >, >=, ==).
Chúng ta có thể dễ dàng kiểm tra chẵn/lẻ bằng câu lệnh điều kiện. Chia số cho 2, sau đó kiểm tra phần dư có bằng 0 hay không. Nếu 0, thì chẵn. Ngược lại, có thể thực hiện phép AND với số và 1. Nếu kết quả là 0, thì chẵn, ngược lại lẻ.
Ở đây không dùng câu lệnh điều kiện. Chúng ta sẽ thấy hai phương pháp khác nhau.
Phương pháp 1
Ở đây, chúng ta tạo một mảng chuỗi. Vị trí chỉ số 0 chứa "Chẵn", vị trí chỉ số 1 chứa "Lẻ". Chúng ta có thể gửi phần dư sau khi chia số cho 2 làm chỉ số để lấy kết quả trực tiếp.
Mã ví dụ
#include <iostream>
using namespace std;
int main() {
int n;
string arr[2] = {"Chẵn", "Lẻ"};
cout << "Nhập một số: ";
cin >> n;
cout << "Số này là: " << arr[n % 2];
return 0;
}
Kết quả 1
Nhập một số: 40 Số này là: Chẵn
Kết quả 2
Nhập một số: 89 Số này là: Lẻ
Phương pháp 2
Đây là phương pháp thứ hai. Ở phương pháp này, chúng ta dùng một số thủ thuật. Tại đây, các toán tử logic và bitwise được dùng. Trước tiên, thực hiện phép AND bitwise giữa số và 1. Sau đó dùng logic AND để in chẵn hay lẻ. Khi kết quả của AND bitwise là 1, lúc đó phép AND logic mới trả về kết quả lẻ, ngược lại trả về chẵn.
Mã ví dụ
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Nhập một số: ";
cin >> n;
(n & 1 && cout << "lẻ") || cout << "chẵn";
// n & 1 sẽ là 1 khi bit thấp nhất (LSB) là 1, nghĩa là số lẻ.
return 0;
}
Kết quả 1
Nhập một số: 40 chẵn
Kết quả 2
Nhập một số: 89 lẻ