मान लीजिए हमारे पास तीन मान हैं, 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