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

C++ দিয়ে বাইনারি অ্যারেতে শূন্যের সংখ্যা বের করা


এই সমস্যাতে, আমাদের একটি বাইনারি অ্যারে bin[] দেওয়া আছে যেটি শুধু ০ এবং ১ দিয়ে গঠিত। আমাদের কাজ হল শূন্যের সংখ্যা বের করা।

অ্যারেটি সর্টেড অর্থাৎ সব ১ গুলো আগে এবং তারপর সব ০ গুলো থাকে।

উদাহরণ দেখি:

ইনপুট

arr[] = {1, 1, 1, 0, 0, 0, 0}

আউটপুট

4

সমাধানের পদ্ধতি

অ্যারেটি সর্টেড থাকায় ০-এর সংখ্যা বের করা সহজ - প্রথম ০-এর অকারেন্স বের করলেই বাকিগুলো ০ হবে। প্রথম ০ খুঁজে বের করার জন্য সার্চিং অ্যালগরিদম ব্যবহার করা যায়।

লিনিয়ার সার্চ - প্রথম ০ খুঁজে বের করলে ইনডেক্স এবং অ্যারে সাইজ দিয়ে কাউন্ট রিটার্ন করা। টাইম কমপ্লেক্সিটি O(N)।

উদাহরণ

#include <iostream> using namespace std; int findFirstZero(int arr[], int n){    for(int i = 0; i < n; i++){       if(arr[i] == 0){          return i;       }    }    return -1; } int countZerosArr(int arr[], int n){    int firstOccZero = findFirstZero(arr, n);    if (firstOccZero == -1)       return 0;       return (n - firstOccZero);    } int main(){    int arr[] = {1, 1, 1, 1, 0, 0, 0, 0, 0};    int n = sizeof(arr) / sizeof(arr[0]);    cout<<"The count of zeros in array is "<<countZerosArr(arr, n);    return 0; }

আউটপুট

The count of zeros in array is 5

বাইনারি সার্চ - মিড এলিমেন্ট ১ নাকি ০ চেক করে অ্যারের সেকশন ভাগ করে প্রথম ০ খুঁজে বের করা।

উদাহরণ

#include <iostream> using namespace std; int findFirstZero(int arr[], int start, int end){    if (end >= start){       int mid = start + (end - start) / 2;       if ((mid == 0 || arr[mid - 1] == 1) && arr[mid] == 0)          return mid;       if (arr[mid] == 1)          return findFirstZero(arr, (mid + 1), end);       else          return findFirstZero(arr, start, (mid -1));    }    return -1; } int countZerosArr(int arr[], int n){    int firstOccZero = findFirstZero(arr, 0, n - 1);    if (firstOccZero == -1)       return 0;       return (n - firstOccZero); } int main(){    int arr[] = {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0};    int n = sizeof(arr) / sizeof(arr[0]);    cout<<"The count of zeros in array is "<<countZerosArr(arr, n);    return 0; }

আউটপুট

The count of zeros in array is 7

  1. C++ দিয়ে B বেসে N!-এর末尾 শূন্যের সংখ্যা বের করা

  2. C++ দিয়ে বেস ১৬-এ N!-এর শেষ শূন্যের সংখ্যা বের করা

  3. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  4. C++-এ ট্রেন স্টপেজ স্টেশন সংখ্যা বের করুন