Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में किसी संख्या में M क्रमागत अंकों का अधिकतम योग और गुणनफल

इस समस्या में, हमें एक संख्या को दर्शाने वाली एक स्ट्रिंग दी जाती है। हमारा कार्य C++ में किसी संख्या में M क्रमागत अंकों के अधिकतम योग और गुणनफल को खोजने के लिए एक प्रोग्राम बनाना है।

समस्या का विवरण

हम M क्रमागत अंकों के सभी क्रम पाते हैं। और अधिकतम राशि और उत्पाद लौटाएं।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

number = 2379641, M = 4

आउटपुट

maxSum = 26maxProd = 1512

स्पष्टीकरण

आकार 4 के सभी अनुगामी 2379, 3796, 7964, 9641 हैं। मैक्ससम =7 + 9 + 6 + 4 =26 मैक्सप्रोड =7 * 9 * 6 * 4 =1512

समाधान दृष्टिकोण

समस्या का एक सरल समाधान यह है कि आकार M के सभी संभावित क्रमागत क्रमों को संख्या के रूप में खोजें। फिर पूर्णांक के सभी मानों को जोड़ें और गुणा करें और फिर सभी योग और उत्पाद मानों का अधिकतम मान लौटाएं।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,

#include <iostream>
using namespace std;
int findMaxVal(int x, int y){
   if(x > y)
      return x;
      return y;
}
void calcMaxProductAndSum(string number, int M){
   int N = number.length();
   int maxProd = -1, maxSum = -1;
   int product = 1, sum = 0;
   for (int i = 0; i < N - M; i++){
      product = 1, sum = 0;
      for (int j = i; j < M + i; j++){
         product = product * (number[j] - '0');
         sum = sum + (number[j] - '0');
      }
      maxProd = findMaxVal(maxProd, product);
      maxSum = findMaxVal(maxSum, sum);
   }
   cout<<"The Maximum Product of "<<M<<" consecutive digits in number "<<number<<" is "<<maxProd<<endl;
   cout<<"The Sum Product of "<<M<<" consecutive digits in number "<<number<<" is "<<maxSum;
}
int main() {
   string str = "2379641";
   int m = 4;
   calcMaxProductAndSum(str, m);
}

आउटपुट

The Maximum Product of 4 consecutive digits in number 2379641 is 1512
The Sum Product of 4 consecutive digits in number 2379641 is 26

  1. C++ में अधिकतम उत्पाद चौगुनी संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास n तत्वों के साथ एक पूर्णांक सरणी है। हमें सरणी में चौगुनी का अधिकतम गुणनफल खोजना है। तो अगर सरणी [3, 5, 20, 6, 10] की तरह है, तो अंतिम उत्पाद 6000 है, और चौगुनी में तत्व 10, 5, 6, 20 है इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - सरणी को आरोही क्रम में क्रमबद्ध करें मान

  1. जाँच करें कि क्या दी गई संख्या C++ में अपने अंकों के भाज्य के योग को विभाजित करती है

    मान लीजिए, हमारे पास एक पूर्णांक है, हमें यह पता लगाना है कि क्या संख्या अपने अंकों के भाज्य के योग को विभाजित करती है। मान लीजिए एक संख्या 19 है, अंकों के भाज्य का योग है (1! + 9!) =362881, यह 19 से विभाज्य है। इसे हल करने के लिए, हम संख्या लेंगे, फिर प्रत्येक अंक के फैक्टोरियल की गणना करेंगे और य

  1. सी ++ प्रोग्राम किसी दिए गए नंबर के अंकों का योग करने के लिए

    C++ भाषा में अंकों के योग की गणना करने के लिए यहां एक उदाहरण दिया गया है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {