मान लीजिए हमारे पास तीन मान हैं, a, b और x। हमें x का एक गुणज ज्ञात करना है, जो कि a b . के सबसे निकट हो . मान लीजिए कि संख्याएँ x =4, a =3, b =3 हैं, तो आउटपुट 28 होगा, क्योंकि यह 3 3 के सबसे निकट है। =27
दृष्टिकोण सरल है; हमें इन शर्तों का पालन करना होगा -
-
यदि b <0, और a =1, तो ab 1 हो जाता है और इसलिए, x का निकटतम गुणज या तो 0 या x हो जाता है।
-
यदि b <0 और a> 1, तो, ab, 1 से कम हो जाता है और इसलिए x का निकटतम गुणज 0 हो जाता है।
-
यदि b> 0 है, तो ab ज्ञात कीजिए। फिर मान लें कि mul =ab / x का पूर्णांक है, तो x का निकटतम गुणज mul*x या (mul + 1)*x
है।
उदाहरण
#include<iostream>
#include<cmath>
using namespace std;
void findMultiple(int a, int b, int x) {
cout << "Nearest multiple: ";
if (b < 0) {
if (a == 1 && x == 1)
cout << "1";
else
cout << "0";
}
int mul = pow(a, b);
int ans = mul / x;
int ans1 = x * ans;
int ans2 = x * (ans + 1);
if((mul - ans1) <= (ans2 - mul)){
cout << ans1;
}
else{
cout << ans2;
}
}
int main() {
int a = 3, b = 3, x = 4;
findMultiple(a, b, x);
} आउटपुट
Nearest multiple: 28