সমস্যা অনুসারে আমাদের এন ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে, আমাদের অ্যারে থেকে সর্বাধিক AND মান সহ একটি জোড়া খুঁজে বের করতে হবে৷
উদাহরণ
ইনপুট:arr[] ={ 4, 8, 12, 16 }আউটপুট:pair =8 12The সর্বোচ্চ এবং মান=8Input:arr[] ={ 4, 8, 16, 2 }আউটপুট:জোড়া =সম্ভব নয় এবং সর্বোচ্চ এবং মান =0
সর্বাধিক এবং মান খোঁজার জন্য একটি অ্যারের মধ্যে সর্বাধিক এবং মান খুঁজে বের করার অনুরূপ। প্রোগ্রামটিকে অবশ্যই উপাদানগুলির জোড়া খুঁজে বের করতে হবে যার ফলে প্রাপ্ত এবং মান পাওয়া যায়। উপাদানগুলি সন্ধানের জন্য, কেবলমাত্র পুরো অ্যারেটি অতিক্রম করুন এবং প্রাপ্ত সর্বাধিক AND মান (ফলাফল) সহ প্রতিটি উপাদানের AND মান খুঁজুন এবং যদি arr[i] এবং ফলাফল ==ফলাফল হয়, তার মানে arr[i] হল উপাদান যা হবে সর্বোচ্চ এবং মান তৈরি করুন। এছাড়াও, যদি সর্বাধিক AND মান (ফলাফল) শূন্য হয় তবে আমাদের সেই ক্ষেত্রে "সম্ভব নয়" প্রিন্ট করা উচিত।
অ্যালগরিদম
int checkBit(int pattern, int arr[], int n)প্রথম ধাপ:0 ধাপ 2 হিসাবে গণনা ঘোষণা এবং শুরু করুন:i =0 এবং i=0 এবং বিট =-- GOTO FUNCTION checkBit(res | (1 < =2 তারপর, res |=(1 <<বিট); শেষ করুন যদি res ==0 প্রিন্ট "কোনও সম্ভব নয় এবং" অন্য প্রিন্ট "সর্বোচ্চ AND=" গণনা =0 এর সাথে জোড়া; int i =0 এবং i উদাহরণ #includeint checkBit(int pattern, int arr[], int n){ int count =0; জন্য (int i =0; i =0; bit--) { count =checkBit(res | (1 < =2) res |=(1 <<বিট); } if (res ==0) // যদি কোন জোড়া উপলব্ধ না থাকে printf("কোনও সম্ভব নয় এবং\n"); অন্যথায় {//পেয়ার উপলব্ধ প্রিন্ট করা হচ্ছে প্রিন্টএফ("সর্বোচ্চ AND="এর সাথে জোড়া"); গণনা =0; জন্য (int i =0; i আউটপুট
যদি আমরা উপরের প্রোগ্রামটি রান করি তাহলে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেজোড়া =8 9 সর্বাধিক এবং মান =8