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

C++ में पूर्णांक विराम


मान लीजिए कि हमारे पास एक धनात्मक पूर्णांक n है, हमें इसे कम से कम दो धनात्मक संख्याओं के योग में तोड़ना है और उन पूर्णांकों के गुणनफल को अधिकतम करना है। हमें अधिकतम उत्पाद खोजना होगा जो हमें मिल सकता है। तो यदि संख्या 10 है, तो उत्तर 36 होगा, जैसे 10 =3 + 3 + 4, 3 * 3 * 4 =36

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक विधि हल () को परिभाषित करें, इसमें n, सरणी dp और ध्वज लगेगा

  • अगर n 0 है, तो 1 लौटाएं

  • अगर dp[n] -1 नहीं है, तो dp[n]

    return लौटाएं
  • अंत:=n – 1 जब ध्वज सेट हो, अन्यथा n

  • रिट:=0

  • क्योंकि मैं 1 से अंत तक की श्रेणी में हूं

    • रिट:=अधिकतम रिट और मैं * हल (एन - आई, डीपी, झूठा)

  • डीपी सेट करें [एन]:=रिट और रिटर्न

  • मुख्य विधि से, n + 1 आकार का एक सरणी dp बनाएं और इसे - 1 से भरें

  • वापसी हल (एन, डीपी)

उदाहरण (C++)

आइए हम इसे बेहतर ढंग से समझने के लिए निम्नलिखित कार्यान्वयन को देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(int n, vector <int>& dp, bool flag = true){
      if(n == 0) return 1;
      if(dp[n] != -1) return dp[n];
      int end = flag? n - 1: n;
      int ret = 0;
      for(int i = 1; i <= end; i++){
         ret = max(ret, i * solve(n - i, dp, false));
      }
      return dp[n] = ret;
   }
   int integerBreak(int n) {
      vector <int>dp(n + 1, -1);
      return solve(n, dp);
   }
};
main(){
   Solution ob;
   cout << (ob.integerBreak(10));
}

इनपुट

10

आउटपुट

36

  1. सी ++ में अहस्ताक्षरित पूर्णांक के लिए डिवीजन एल्गोरिदम बहाल करना

    एक विभाजन एल्गोरिथ्म का उपयोग करके एक अहस्ताक्षरित पूर्णांक को विभाजित करने पर चर्चा करें। कुछ डिवीजन एल्गोरिदम कागज पर लागू होते हैं, और अन्य डिजिटल सर्किट पर लागू होते हैं। डिवीजन एल्गोरिदम दो प्रकार के होते हैं:स्लो डिवीजन एल्गोरिथम और फास्ट डिवीजन एल्गोरिथम। स्लो डिविजन एल्गोरिथम में रिस्टोरिंग,

  1. एक पूर्णांक के अंकों को ज़ूम करने के लिए C++ प्रोग्राम

    इस प्रोग्राम में हम देखेंगे कि C++ में किसी पूर्णांक के अंकों को कैसे ज़ूम किया जाता है। ज़ूमिंग का अर्थ है कुछ अन्य वर्णों का उपयोग करके संख्याओं को बड़े रूप में प्रिंट करना। तर्क सरल है, लेकिन हमें 0 से 9 तक एक-एक करके बड़ी संख्याएँ बनानी होंगी। उदाहरण कोड #include <bits/stdc++.h> using name

  1. C++ पूर्णांक स्थिरांक क्या हैं?

    पूर्णांक स्थिरांक स्थिर डेटा तत्व होते हैं जिनमें कोई भिन्नात्मक भाग या घातांक नहीं होते हैं। वे हमेशा एक अंक से शुरू करते हैं। आप दशमलव, अष्टाधारी, या हेक्साडेसिमल रूप में पूर्णांक स्थिरांक निर्दिष्ट कर सकते हैं। वे हस्ताक्षरित या अहस्ताक्षरित प्रकार और लंबे या छोटे प्रकार निर्दिष्ट कर सकते हैं। C+