मान लीजिए कि हमारे पास दो पूर्णांक n और m हैं। हमें n के निकटतम संख्या ज्ञात करनी है और m से भाग देना है। यदि ऐसी एक से अधिक संख्याएँ हैं, तो वह संख्या दर्शाइए जिसका अधिकतम निरपेक्ष मान है। यदि n, m से पूर्ण रूप से विभाज्य है, तो n लौटाएँ। तो अगर n =13, m =4, तो आउटपुट 12 है।
इसे हल करने के लिए, हम इन चरणों का पालन कर सकते हैं -
- चलो q :=n/m, और n1 :=m*q
- यदि n * m> 0, तो n2 :=m * (q + 1), अन्यथा n2 :=m * (q - 1)
- अगर |n - n1| <|n - n2|, फिर n1 लौटाएं, अन्यथा n2
उदाहरण
#include<iostream> #include<cmath> using namespace std; int findClosest(int n, int m) { int q = n / m; int n1 = m * q; int n2 = (n * m) > 0 ? (m * (q + 1)) : (m * (q - 1)); if (abs(n - n1) < abs(n - n2)) return n1; return n2; } int main() { int n = 13, m = 4; cout << "Closest for n = " << n << ", and m = " << m << ": " << findClosest(n, m) << endl; n = 0; m = 8; cout << "Closest for n = " << n << ", and m = " << m << ": " << findClosest(n, m) << endl; n = 18; m = -7; cout << "Closest for n = " << n << ", and m = " << m << ": " << findClosest(n, m) << endl; }
आउटपुट
Closest for n = 13, and m = 4: 12 Closest for n = 0, and m = 8: 0 Closest for n = 18, and m = -7: 21