इस सेक्शन में हम देखेंगे कि किसी भी प्रकार के कंडीशनल स्टेटमेंट्स (>, <, !=, >, >=, ==) का उपयोग किए बिना किसी संख्या को ऑड या इवन कैसे चेक करें।
हम कंडीशनल स्टेटमेंट्स का उपयोग करके आसानी से ऑड या इवन चेक कर सकते हैं। हम संख्या को 2 से विभाजित कर सकते हैं, फिर चेक कर सकते हैं कि शेषफल 0 है या नहीं। यदि 0 है, तो यह इवन है। अन्यथा हम संख्या और 1 के साथ AND ऑपरेशन कर सकते हैं। यदि उत्तर 0 है, तो यह इवन है, अन्यथा ऑड।
यहां कोई कंडीशनल स्टेटमेंट्स उपयोग नहीं किए जा सकते। हम ऑड या इवन चेक करने के लिए दो अलग-अलग मेथड्स देखेंगे।
मेथड 1
यहां हम स्ट्रिंग्स का एक ऐरे बनाएंगे। इंडेक्स 0 पोजीशन "Even" रखेगा, और इंडेक्स 1 पोजीशन "Odd" रखेगा। हम संख्या को 2 से विभाजित करने के बाद शेषफल को इंडेक्स के रूप में भेजकर सीधे परिणाम प्राप्त कर सकते हैं।
उदाहरण कोड
#include <stdio.h>
main() {
int n;
char* arr[2] = {"Even", "Odd"};
printf("Enter a number: "); // उपयोगकर्ता से संख्या लें
scanf("%d", &n);
printf("The number is: %s", arr[n%2]); // स्ट्रिंग चुनने के लिए शेषफल प्राप्त करें
}
आउटपुट 1
Enter a number: 40 The number is: Even
आउटपुट 2
Enter a number: 89 The number is: Odd
मेथड 2
यह दूसरी विधि है। इस विधि में हम कुछ ट्रिक्स का उपयोग करेंगे। यहां लॉजिकल और बिटवाइज़ ऑपरेटर्स उपयोग किए जाते हैं। पहले हम संख्या और 1 के साथ AND ऑपरेशन कर रहे हैं। फिर लॉजिकल AND का उपयोग करके ऑड या इवन प्रिंट कर रहे हैं। जब बिटवाइज़ AND का परिणाम 1 होता है, तो केवल लॉजिकल AND ऑपरेशन ऑड परिणाम लौटाएगा, अन्यथा यह इवन लौटाएगा।
उदाहरण कोड
#include <stdio.h>
main() {
int n;
char *arr[2] = {"Even", "Odd"};
printf("Enter a number: "); // उपयोगकर्ता से संख्या लें
scanf("%d", &n);
(n & 1 && printf("odd")) || printf("even"); // n & 1 तब 1 होगा जब LSB पर 1 मौजूद हो, तो यह ऑड है।
}
आउटपुट 1
Enter a number: 40 even
आउटपुट 2
Enter a number: 89 odd