একটি পূর্ণসংখ্যা Number দেওয়া থাকলে, ১ থেকে Number পর্যন্ত সর্ট করা অ্যারেটি ধাপে ধাপে বিজোড় পজিশনের এলিমেন্ট মুছে ফেলা হবে। শেষে বাঁচা একক এলিমেন্টটি বের করতে হবে।
দ্রষ্টব্য: অ্যারে ইনডেক্স ০ = ১ম পজিশন।
টেস্ট কেস
- Number=1 → আউটপুট 1
- Number=2 → আউটপুট 2
- Number=3 → আউটপুট 2
- Number=4 → আউটপুট 4
- Number=5 → আউটপুট 4
- Number=6 → আউটপুট 4
- Number=7 → আউটপুট 4
- Number=12 → আউটপুট 8
- Number=20 → আউটপুট 16
নSpielbericht: 2ⁱ থেকে 2ⁱ⁺¹-১ পর্যন্ত রেঞ্জের জন্য আউটপুট 2ⁱ।
উদাহরণ
ইনপুট − Number = 7
আউটপুট − রিডাকশন অপারেশনের পর একক এলিমেন্ট: 4
ব্যাখ্যা − অ্যারে [1,2,3,4,5,6,7] → ১রা অপারেশন: [2,4,6] → ২রা: [4]।
ইনপুট − Number = 18
আউটপুট − রিডাকশন অপারেশনের পর একক এলিমেন্ট: 16
ব্যাখ্যা − অ্যারে ১ থেকে ১৮ → ১রা: [2,4,6,8,10,12,14,16,18] → ২রা: [2,8,12,16] → ৩রা: [8,16] → ৪থা: [16]।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
উপরের পর্যবেক্ষণ অনুযায়ী, ফলাফল হলো Number-এর চেয়ে ছোট বা সমান সর্বোচ্চ ২-এর ঘাত।
ইনপুট
Numberনিন।getsingleElement(long num)ফাংশন ফলাফল ফেরত দেয়।result = 2ইনিশিয়ালাইজ করুন।while(result*2 <= num) result *= 2;লুপ চালান।লুপ শেষে
resultফেরত দিন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
long getsingleElement(long num){
long result = 2;
while(result * 2 <= num){
result = result * 2;
}
return result;
}
int main(){
int Number = 20;
cout << "The single element after reduction operation is : " << getsingleElement(Number);
return 0;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
The single element after reduction operation is : 16