मान लीजिए, हमारे पास एक पूर्णांक N > 0 है। कार्य N से कम या बराबर संख्याओं में अंकों का अधिकतम गुणनफल ढूंढना है। यदि N 390 है, तो परिणाम 216 है, क्योंकि संख्या 389 अधिकतम गुणनफल 3 * 8 * 9 = 216 बनाती है।
इस समस्या को हल करने के लिए, हम रिकर्सिव दृष्टिकोण का उपयोग करेंगे। तो यदि N = 0, तो 1 वापस करें, यदि संख्या N < 10, तो N वापस करें, अन्यथा max(max_product(N/10) * (N mod 10), max_product((N/10) - 1)*9) वापस करें
उदाहरण
#includeusing namespace std; int max_product(int N) { if (N == 0) return 1; if (N < 10) return N; return max(max_product(N / 10) * (N % 10), max_product(N / 10 - 1) * 9); } int main() { int N = 432; cout << "Maximum product is: " << max_product(N); }
आउटपुट
Maximum product is: 243