मान लीजिए, हमारे पास एक पूर्णांक 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 )
उदाहरण
#include<iostream>
using 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