আমরা পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়. লক্ষ্য হল একটি অ্যারের উপাদানগুলির গণনা খুঁজে বের করা যা প্রদত্ত মানের K এর থেকে কম বা সমান।
ইনপুট
Arr[]= { 1, 2, 3, 14, 50, 69, 90 } K=12
আউটপুট
Numbers smaller or equal to K: 3
ব্যাখ্যা
Numbers 1,2,3 is smaller or equal to 12.
ইনপুট
Arr[]= { 12, 13, 13, 13, 14, 50, 54, 100 } K=14
আউটপুট
Numbers smaller or equal to K: 5
ব্যাখ্যা
Numbers 12, 13, 14 are smaller or equal to 14.
নিষ্পাপ দৃষ্টিভঙ্গি
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা Arr[] এবং K.
পূর্ণসংখ্যা অ্যারে নিই -
ফাংশন ছোট বা সমান
-
এই ধরনের সংখ্যার জন্য প্রাথমিক পরিবর্তনশীল গণনা 0 হিসাবে নিন।
-
লুপ ব্যবহার করে সংখ্যার ট্রাভার্স অ্যারে। i=0 থেকে i
-
এখন প্রতিটি সংখ্যার জন্য arr[i], যদি তা হয় <=k, বৃদ্ধির সংখ্যা।
-
শেষে লুপ গণনায় একটি মোট সংখ্যা থাকবে যা শর্ত পূরণ করে।
-
ফলাফল হিসাবে গণনা ফেরত দিন।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int smallorEqual(int arr[],int k,int len){ int count = 0; for (int i = 0; i < len; i++){ if(arr[i]<=k) { count++; } else { break; } } return count; } int main(){ int Arr[] = { 1,5,11,12,19,21,32,53,70,100 }; int K = 21; int Length= sizeof(Arr)/sizeof(Arr[0]); cout <<"Numbers smaller or equal to K: "<<smallorEqual(Arr,K,Length); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেNumbers smaller or equal to K: 6
দক্ষ পদ্ধতি (বাইনারি অনুসন্ধান ব্যবহার করে)
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা Arr[] এবং K.
পূর্ণসংখ্যা অ্যারে নিই -
ফাংশন বাইনারি সার্চ (int arr[],int k,int len) arr[] এর উপাদানগুলির গণনা প্রদান করে যেগুলি K
এর সমান বা ছোট। -
সূচী নিন নিম্ন=0, উচ্চ=লেন-1 এবং মধ্য=(নিম্ন+উচ্চ)/2;/p>
-
পরিবর্তনশীল সূচক নিন=-1;
-
যখন লুপ ব্যবহার করা হচ্ছে, কম পর্যন্ত<=high
-
arr[মধ্য] এর মান পরীক্ষা করুন। যদি হয় <=k. তারপর সূচক =মধ্য। নতুন নিম্ন=মধ্য+1
-
অন্যথায় নতুন high=mid-1.
-
যখন লুপ সূচকের শেষে শেষ সংখ্যার সূচক হবে<=k.
-
ফলাফল হিসাবে সূচী +1 ফেরত দিন কারণ অ্যারে সূচীকরণ 0 থেকে শুরু হয় এবং সূচক 0 থেকে সূচক পর্যন্ত সমস্ত সংখ্যা k এর থেকে কম৷
উদাহরণ
#include <bits/stdc++.h> using namespace std; int binarySearch(int arr[],int k,int len){ int low = 0; int high = len -1; int mid = (high+low)/2; int index = -1; while(low <= high){ mid =( low + high ) / 2; if(arr[mid] <= k){ index = mid; low = mid+1; } else{ high=mid-1; } } return (index+1); } int main(){ int Arr[] = { 1,5,11,12,19,21,32,53,70,100 }; int K = 21; int Length= sizeof(Arr)/sizeof(Arr[0]); cout <<"Numbers smaller or equal to K: "<<binarySearch(Arr,K,Length); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেNumbers smaller or equal to K: 6