ধরুন আমাদের চারটি পূর্ণসংখ্যা a, b, c এবং k আছে। আমাদের ন্যূনতম ধনাত্মক মান x খুঁজে বের করতে হবে, যেমন নিম্নলিখিত সমীকরণটি সন্তুষ্ট হয় −
𝑎𝑥2+𝑏𝑥+𝑐 ≥𝑘
যদি a =3, b =4, c =5 এবং k =6 হয়, তাহলে আউটপুট হবে 1
এটি সমাধান করার জন্য, আমরা দ্বিখণ্ডন পদ্ধতি ব্যবহার করব। নিম্ন সীমা হবে 0 যেহেতু x একটি ন্যূনতম ধনাত্মক পূর্ণসংখ্যা হতে হবে।
উদাহরণ
#include<iostream>
using namespace std;
int getMinX(int a, int b, int c, int k) {
int x = INT8_MAX;
if (k <= c)
return 0;
int right = k - c;
int left = 0;
while (left <= right) {
int mid = (left + right) / 2;
int val = (a * mid * mid) + (b * mid);
if (val > (k - c)) {
x = min(x, mid);
right = mid - 1;
}
else if (val < (k - c))
left = mid + 1;
else
return mid;
}
return x;
}
int main() {
int a = 3, b = 2, c = 4, k = 15;
cout << "Minimum value of x is: " << getMinX(a, b, c, k);
} আউটপুট −
Minimum value of x is: 2