Trong phần này, chúng ta sẽ xem cách kiểm tra xem một số là số lẻ hay số chẵn mà không cần sử dụng bất kỳ loại câu lệnh điều kiện nào như (<, <=,! =,>,> =, ==).
Chúng ta có thể dễ dàng kiểm tra số lẻ hay chẵn bằng cách sử dụng các câu lệnh điều kiện. Chúng ta có thể chia số cho 2, sau đó kiểm tra xem phần dư có phải là 0 hay không. nếu 0, thì nó là số chẵn. Nếu không, chúng ta có thể thực hiện phép toán AND với số và 1. Nếu câu trả lời là 0 thì nó là chẵn, ngược lại là lẻ.
Ở đây không có câu lệnh điều kiện nào có thể được sử dụng. Chúng ta sẽ thấy hai phương pháp khác nhau để kiểm tra số lẻ hay số chẵn.
Phương pháp 1
Ở đây chúng ta sẽ tạo một mảng các chuỗi. Vị trí chỉ số 0 sẽ giữ “Chẵn” và vị trí chỉ mục 1 sẽ giữ “Lẻ”. Chúng ta có thể gửi phần còn lại sau khi chia số cho 2 dưới dạng chỉ số để nhận kết quả trực tiếp.
Mã mẫu
#include<stdio.h> main() { int n; char* arr[2] = {"Even", "Odd"}; printf("Enter a number: "); //take the number from the user scanf("%d", &n); printf("The number is: %s", arr[n%2]); //get the remainder to choose the string }
Đầu ra 1
Enter a number: 40 The number is: Even
Đầu ra 2
Enter a number: 89 The number is: Odd
Phương pháp 2
Đây là phương pháp thứ hai. Trong phương pháp này, chúng tôi sẽ sử dụng một số thủ thuật. Ở đây các toán tử logic và bitwise được sử dụng. Lúc đầu, chúng tôi thực hiện phép toán AND với số và 1. Sau đó sử dụng logic và để in ra số lẻ hoặc chẵn. Khi kết quả của bitwise AND là 1, thì chỉ phép toán logic AND mới trả về kết quả lẻ, nếu không nó sẽ trả về chẵn.
Mã mẫu
#include<stdio.h> main() { int n; char *arr[2] = {"Even", "Odd"}; printf("Enter a number: "); //take the number from the user scanf("%d", &n); (n & 1 && printf("odd"))|| printf("even"); //n & 1 will be 1 when 1 is present at LSb, so it is odd. }
Đầu ra 1
Enter a number: 40 even
Đầu ra 2
Enter a number: 89 odd