এই সমস্যায়, আমাদেরকে N পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে। আমাদের কাজ হল পরবর্তি সংখ্যার গণনা খুঁজে বের করা যা এমনভাবে গঠিত হতে পারে যাতে যদি তাদের উপাদানগুলিকে গুণ করা হয়, তাহলে তারা একটি সংখ্যায় পরিণত হয় যা দুইটির শক্তি।
সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
ইনপুট − arr =[2, 5, 4]
আউটপুট − 3
ব্যাখ্যা − পরবর্তী [2], [4] এবং [2, 4] পছন্দসই ফলাফল দেয়।
এই সমস্যা সমাধানের জন্য, আমাদের শক্তির যুক্তি বুঝতে হবে।
শুধুমাত্র 2 এর ক্ষমতা সহ সেই সংখ্যাগুলি পছন্দসই ফলাফল দিতে গুণ করবে। সুতরাং, আমাদেরকে অ্যারের থেকে শুধুমাত্র সেই অনুগামীগুলি বিবেচনা করতে হবে যেগুলি নিজেই 2 এর কিছু শক্তি।
সুতরাং, অ্যারেতে যদি M উপাদান থাকে যা 2 এর শক্তি, তাহলে সাব-অ্যারেগুলির গণনা হবে 2 M - 1
উদাহরণ
আমাদের সমাধানের বাস্তবায়ন দেখানোর প্রোগ্রাম
#include#include namespace ব্যবহার করে std;bool isPowerTwo(int num) { if (num ==0) ফেরত মিথ্যা; যদি (সংখ্যা ==1) সত্য হয়; যদি (সংখ্যা এবং (সংখ্যা - 1)) মিথ্যা ফেরত দেয়; রিটার্ন true;}int SubsequenceWithPowerTwo(int arr[], int N) { int count =0; জন্য (int i =0; i আউটপুট
<পূর্ব> না। 2 এর ঘাত এমন একটি সংখ্যার সাথে গুন করা পরবর্তী অনুক্রম হল :7