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

C++ में सबसे बड़ा पालिंड्रोम उत्पाद


मान लीजिए हमारे पास इनपुट n है, हमें दो n-अंकीय संख्याओं के गुणनफल से बनने वाला सबसे बड़ा पालिंड्रोम ढूंढना है। चूंकि संख्याएं बहुत बड़ी होती हैं, हम 1337 से मोड्यूलो कर सकते हैं। तो यदि इनपुट 2 है, तो उत्तर 987 होगा, 987 = (99*91) mod 1337 = 9009 mod 1337 = 987।

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

  • maxVal := 10^n - 1
  • minVal := maxVal / 10
  • h := maxVal से आरंभ करें, जब h > minVal, अपडेट करें (h को 1 से घटाएं), करें -
    • left := h, right := 0
    • i := h से आरंभ करें, जब i > 0, अपडेट करें right = right * 10 + i mod 10, left := left * 10, i := i / 10, करें -
      • x := left + right
      • i := maxVal से आरंभ करें, जब i > minVal, अपडेट करें (i को 1 से घटाएं), करें -
        • यदि i < x / i, तो -
          • लूप से बाहर आएं
        • यदि x mod i 0 के समान है, तो -
          • x mod 1337 लौटाएं
  • 9 लौटाएं

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

उदाहरण

#include <bits/stdc++.h> using namespace std; typedef long long int lli; class Solution { public:    int largestPalindrome(int n) {       int maxVal = pow(10, n) - 1;       int minVal = maxVal / 10;       for(int h = maxVal; h > minVal; h--){          lli left = h;          lli right = 0;          for(lli i = h; i > 0; right = right * 10 + i % 10, left*= 10, i/= 10);          lli x = left + right;          for(int i = maxVal; i > minVal; i--){             if(i < x / i) break;             if(x % i == 0) return x % 1337;          }       }       return 9;    } }; main(){    Solution ob;    cout << (ob.largestPalindrome(3)); }

इनपुट

3

आउटपुट

123

  1. - C++ में X से विभाज्य सबसे बड़ी K अंकों की संख्या

    इस ट्यूटोरियल में, हम एक ऐसा प्रोग्राम लिखेंगे जो x से विभाज्य सबसे बड़ी k-अंकों की संख्या ढूंढता है।आइए इस समस्या को हल करने के चरण देखते हैं।x और k को इनिशियलाइज़ करें।pow(10, k) - 1 का मान ज्ञात करें जो सबसे बड़ी k-अंकों की संख्या है।अब उपरोक्त मान से शेषफल घटाकर x से विभाज्य सबसे बड़ी k-अंकों की

  1. - C++ में अगला पालिंड्रोम अभाज्य संख्या ढूंढना

    इस समस्या में, हमें एक तत्व N दिया जाता है। हमें अगला पालिंड्रोम अभाज्य संख्या ढूंढना है।समस्या विवरण – हमें N से बड़ी सबसे छोटी अभाज्य संख्या ढूंढनी है जो एक पालिंड्रोम संख्या भी है।पालिंड्रोम संख्या वह संख्या है जिसमें अंक दोनों दिशाओं में समान होते हैं।अभाज्य संख्या वह संख्या है जिसके केवल गुणनखं

  1. C++ में सबसे बड़ा BST सबट्री - अधिकतम नोड्स वाला BST खोजें C++ में सबसे बड़ा BST सबट्री - अधिकतम नोड्स वाला BST खोजें

    समस्या विवरण मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें उसका सबसे बड़ा सबट्री ढूंढना है जहां सबसे बड़ा का अर्थ है सबसे अधिक नोड्स वाला सबट्री। उदाहरण के लिए, यदि इनपुट इस तरह का ट्री है: तो आउटपुट 3 होगा, क्योंकि इस मामले में सबसे बड़ा BST सबट्री हाइलाइट किया गया है। समाधान दृष्टिकोण पोस्ट-ऑर्ड