আমাদের একটি পূর্ণসংখ্যা অ্যারে এবং দুটি সংখ্যা start এবং end দেওয়া আছে, এবং আমাদের কাজ হল অ্যারেতে start এবং end-এর মধ্যস্থ উপাদানগুলির সংখ্যা গণনা করা।
যদি start উপাদান একাধিকবার থাকে তবে আমরা প্রথম ঘটনাটি বিবেচনা করব এবং যদি end উপাদান একাধিকবার থাকে তবে আমরা শেষ ঘটনাটি বিবেচনা করব।
উদাহরণ
ইনপুট − int arr[] = {1, 2, 3, 4, 5, 6, 7} Start = 1 and End = 7 আউটপুট − গণনা 5
ব্যাখ্যা − দেওয়া অ্যারেতে 7টি উপাদান রয়েছে এবং রেঞ্জ 1-7। এই রেঞ্জের মধ্যস্থ মোট 5টি উপাদান রয়েছে।
ইনপুট − int arr[] = {1, 2, 3, 4, 5, 6, 7} Start = 7 and End = 9 আউটপুট − গণনা 0
ব্যাখ্যা − দেওয়া অ্যারেতে 7টি উপাদান রয়েছে এবং রেঞ্জ 7-9। এই রেঞ্জের মধ্যস্থ কোনো উপাদান নেই, তাই গণনা 0।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- ইনপুট অ্যারে নিন, যেমন
int arr[] length()ফাংশন দিয়ে অ্যারের দৈর্ঘ্য গণনা করুনi = 0থেকেi < sizeপর্যন্ত লুপ শুরু করুন- লুপের ভিতরে, যদি
arr[i] == startহয় তবেbreakকরুন - যদি
i > size-1হয় তবে ফেরত দিন j = size-1থেকেj >= i+1এবংj--দিয়ে আরেকটি লুপ শুরু করুন- যদি
arr[j] == endহয় তবেbreakকরুন - যদি
j == iহয় তবে 0 ফেরত দিন j - i - 1ফেরত দিন- ফলাফল প্রিন্ট করুন
উদাহরণ কোড
#include <iostream>
using namespace std;
// দুটি উপাদানের মধ্যস্থ সংখ্যা গণনা করার ফাংশন
int countelements(int ar[], int n, int start, int end) {
// start খুঁজুন
int i = 0;
for (i = 0; i < n; i++) {
if (ar[i] == start) {
break;
}
}
// যদি start না থাকে বা শেষে থাকে
if (i >= n - 1) {
return 0;
}
// end খুঁজুন
int j;
for (j = n - 1; j >= i + 1; j--) {
if (ar[j] == end) {
break;
}
}
// যদি end না থাকে
if (j == i) {
return 0;
}
// দুটি উপাদানের মধ্যস্থ উপাদানগুলির সংখ্যা
return (j - i - 1);
}
// Main ফাংশন
int main() {
int ar[] = { 1, 6, 2, 5, 9, 8, 3, 7, 4 };
int n = sizeof(ar) / sizeof(ar[0]);
int start = 5, end = 4;
cout << "count is " << countelements(ar, n, start, end);
return 0;
}
আউটপুট
যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব −
count is 4