এই বিভাগে আমরা দেখব যে কোন প্রকার শর্তসাপেক্ষ বিবৃতি যেমন (<, <=, !=,>,>=, ==) ব্যবহার না করে কীভাবে একটি সংখ্যা বিজোড় বা জোড় তা পরীক্ষা করা যায়।
আমরা শর্তসাপেক্ষ বিবৃতি ব্যবহার করে সহজেই বিজোড় বা জোড় পরীক্ষা করতে পারি। আমরা সংখ্যাটিকে 2 দ্বারা ভাগ করতে পারি, তারপরে অবশিষ্টটি 0 কিনা তা পরীক্ষা করে দেখুন। যদি 0, তাহলে এটা জোড়। অন্যথায় আমরা সংখ্যা এবং 1 দিয়ে AND অপারেশন করতে পারি। যদি উত্তরটি 0 হয়, তাহলে তা জোড়, অন্যথায় বিজোড়।
এখানে কোন শর্তসাপেক্ষ বিবৃতি ব্যবহার করা যাবে না। বিজোড় বা জোড় পরীক্ষা করার জন্য আমরা দুটি ভিন্ন পদ্ধতি দেখব।
পদ্ধতি 1
এখানে আমরা স্ট্রিং এর একটি অ্যারে তৈরি করব। সূচক 0 অবস্থান "জোড়" ধরে থাকবে, এবং সূচক 1 অবস্থানটি "বিজোড়" ধারণ করবে। আমরা সরাসরি ফলাফল পেতে সূচক হিসাবে সংখ্যাটিকে 2 দ্বারা ভাগ করার পরে অবশিষ্ট পাঠাতে পারি।
উদাহরণ কোড
#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 }
আউটপুট 1
Enter a number: 40 The number is: Even
আউটপুট 2
Enter a number: 89 The number is: Odd
পদ্ধতি 2
এটি দ্বিতীয় পদ্ধতি। এই পদ্ধতিতে আমরা কিছু কৌশল ব্যবহার করব। এখানে লজিক্যাল এবং বিটওয়াইজ অপারেটর ব্যবহার করা হয়। প্রথমে আমরা সংখ্যা এবং 1 দিয়ে AND অপারেশন করছি। তারপর লজিক্যাল ব্যবহার করছি এবং বিজোড় বা জোড় প্রিন্ট করতে হবে। যখন bitwise AND এর ফলাফল 1 হয়, তখন শুধুমাত্র লজিক্যাল AND অপারেশনটি বিজোড় ফলাফল প্রদান করবে, অন্যথায় এটি জোড় ফিরে আসবে।
উদাহরণ কোড
#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. }
আউটপুট 1
Enter a number: 40 even
আউটপুট 2
Enter a number: 89 odd