Trong phần này, xem cách kiểm tra số chẵn/lẻ không dùng câu lệnh điều kiện (<, <=, !=, >, >=, ==).
Dễ dàng kiểm tra bằng điều kiện: chia 2 lấy dư, nếu 0 thì chẵn, ngược lại lẻ. Hoặc dùng AND bitwise với 1: nếu kết quả 0 thì chẵn, else lẻ.
Ở đây không dùng điều kiện. Sẽ thấy hai phương pháp.
Phương pháp 1
Tạo mảng chuỗi. Index 0 chứa "Chẵn", index 1 chứa "Lẻ". Dùng phần dư chia 2 làm chỉ số truy xuất mảng.
Ví dụ Code
#include <stdio.h>
main() {
int n;
char* arr[2] = {"Chan", "Le"};
printf("Nhap mot so: ");
scanf("%d", &n);
printf("So nay la: %s", arr[n % 2]);
}
Kết quả 1
Nhap mot so: 40 So nay la: Chan
Kết quả 2
Nhap mot so: 89 So nay la: Le
Phương pháp 2
Dùng kỹ thuật toán tử logic và bitwise. Thực hiện AND bitwise với 1. Sau đó dùng AND logic để in chẵn/lẻ. Khi bitwise AND = 1 (số lẻ), logic AND trả về "le", ngược lại "chan".
Ví dụ Code
#include <stdio.h>
main() {
int n;
char *arr[2] = {"Chan", "Le"};
printf("Nhap mot so: ");
scanf("%d", &n);
(n & 1 && printf("le")) || printf("chan");
}
Kết quả 1
Nhap mot so: 40 chan
Kết quả 2
Nhap mot so: 89 le