আয়তক্ষেত্রের পাশগুলো এবং রেঞ্জ ভেরিয়েবল first এবং last দেওয়া আছে। লক্ষ্য হলো সেসব আয়তক্ষেত্রের সংখ্যা বের করা যাদের পাশের দৈর্ঘ্যের অনুপাত (length/breadth) [first, last] রেঞ্জের মধ্যে পড়ে।
উদাহরণ ১
ইনপুট
rec[] = { { 200, 210 }, { 100, 50 }, { 300, 190}, {180, 200}, {300, 200}} and first = 1.0, last = 1.6
আউটপুট
পাশের অনুপাত [a,b] রেঞ্জে আছে এমন আয়তক্ষেত্রের সংখ্যা: 4
ব্যাখ্যা
যেসব পাশের অনুপাত [1.0, 1.6] রেঞ্জে আছে: {200,210}, {300,190}, {180,200}, {300,200}
উদাহরণ ২
ইনপুট
rec[] = { { 10,20 }, { 30, 10 }, { 100, 500}, {900, 300}, {450, 90}} and first = 3.0, last = 4.0
আউটপুট
পাশের অনুপাত [a,b] রেঞ্জে আছে এমন আয়তক্ষেত্রের সংখ্যা: 2
ব্যাখ্যা
যেসব পাশের অনুপাত [3.0, 4.0] রেঞ্জে আছে: {30,10}, {900,300}
প্রয়োগ করা পদ্ধতি
এই পদ্ধতিতে পাশগুলো pair টাইপের অ্যারে হিসেবে নেওয়া হয়। প্রতিটি পেয়ারের জন্য চেক করা হয় যে বড় মান/ছোট মানের ফলাফল [first, last] রেঞ্জের মধ্যে পড়ে কিনা। যদি হয় তবে সেক্ষنین পেয়ারের কাউন্ট বাড়ানো হয়।
pairটাইপের অ্যারেrec[]নিন।রেঞ্জ সংজ্ঞায়িত করার জন্য দুটি ভেরিয়েবল
firstএবংlastনিন।ratio_sides(pairফাংশনটি আয়তক্ষেত্রের পাশ এবং রেঞ্জ গ্রহণ করে ফলাফল রিটার্ন করে।rec[], int total, double first, double last) আরম্ভিক কাউন্ট ০ রাখুন।
forলুপ দিয়েi=0থেকেiপর্যন্ত ট্রুভার্স করুন। rec[i]-এ বড় মানmaxi = max(rec[i].first, rec[i].second)হিসেবে বের করুন।rec[i]-এ ছোট মানmini = min(rec[i].first, rec[i].second)হিসেবে বের করুন।average = maxi/miniক্যালকুলেট করুন।যদি
average-র মান[first, last]রেঞ্জে পড়ে, তবে কাউন্ট বাড়ান।forলুপ শেষে কাউন্ট রিটার্ন করুন ফলাফল হিসেবে।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int ratio_sides(pair<int, int> rec[], int total, double first, double last) {
int count = 0;
for (int i = 0; i < total; i++) {
double maxi = max(rec[i].first, rec[i].second);
double mini = min(rec[i].first, rec[i].second);
double average = maxi/mini;
if (average >= first) {
if(average <= last) {
count++;
}
}
}
return count;
}
int main() {
pair<int, int> rec[] = { { 200, 210 }, { 100, 50 }, { 300, 190}, {180, 200}, {300, 200}};
int total = 5;
double first = 1.0, last = 1.6;
cout << "পাশের অনুপাত [a,b] রেঞ্জে আছে এমন আয়তক্ষেত্রের সংখ্যা: " << ratio_sides(rec, total, first, last);
return 0;
}
আউটপুট
উপরোক্ত কোডটি রান করলে নিচের আউটপুটটি আসবে:
পাশের অনুপাত [a,b] রেঞ্জে আছে এমন আয়তক্ষেত্রের সংখ্যা: 4