मान लीजिए हमारे पास तीन पूर्णांक, a, b और x हैं। कार्य x के उस गुणक को प्राप्त करना है, जो a^b के निकटतम हो। तो यदि a = 5, b = 4 और x = 3, तो आउटपुट 624 होगा। क्योंकि 5^4 = 625, और 624, 3 का गुणक है, जो 625 के निकटतम है।
कार्य सरल है। हमें इस समस्या को हल करने के लिए इन चरणों का पालन करना होगा -
- num := a^b की गणना करें
- फिर f := floor of (num/x) खोजें
- अब बाएं तरफ का निकटतम तत्व cl = x * f होगा, और दाएं तरफ cr = x * (f + 1)
- अंत में, उनमें से निकटतम संख्या min(num - cl, cr - num) होगी
उदाहरण
#include <iostream>
#include <cmath>
using namespace std;
long long getClosest(int a, int b, int x) {
long long num = pow(a, b);
int f = floor(num / x);
long long cl = x * f;
long long cr = x * (f + 1);
if ((num - cl) < (cr - num))
return cl;
else
return cr;
}
int main() {
int a = 5, b = 4, x = 3;
cout << "Find closest element: " << getClosest(a, b, x);
}
आउटपुट
Find closest element: 624