কম্পিউটার টিউটোরিয়াল

C++-এ অ্যারে একটি এলিমেন্টে রিডিউস করুন (বিজোড় পজিশন মুছে ফেলা)


একটি পূর্ণসংখ্যা 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
  1. C++-এ Single Element in a Sorted Array

  2. C++-এ দেওয়া অপারেশন দিয়ে অ্যারে যোগফল সর্বাধিক করা

  3. দেওয়া পার্থক্যের সাথে একটি জোড়া খুঁজে বের করা C++-এ

  4. C++ তে ন্যূনতম এবসোলিউট ডিফারেন্স যোগফল ওয়ালা অ্যারে উপাদান