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

न्यूनतम धनात्मक पूर्णांक इस प्रकार ज्ञात कीजिए कि यह A से विभाज्य हो और इसके अंकों का योग Python में B के बराबर हो

मान लीजिए कि हमारे पास दो संख्याएँ A और B हैं, हमें न्यूनतम धनात्मक संख्या M ज्ञात करनी है ताकि M, A से विभाज्य हो और M के अंकों का योग B के समान हो। इसलिए, यदि ऐसा कोई परिणाम नहीं है, तो वापस लौटें - 1.

इसलिए, यदि इनपुट ए =50, बी =2 जैसा है, तो आउटपुट 200 होगा क्योंकि यह 50 से विभाज्य है और इसके अंकों का योग =2 + 0 + 0 =2 है।

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

  • एक तत्व प्रकार के कंटेनर को परिभाषित करें, जिसमें दो नंबर ए और बी और एक स्ट्रिंग हो

  • que :=एक नई सूची

  • elem :=एक नया तत्व (0, 0, रिक्त स्ट्रिंग) के साथ

  • विज़िट किया गया[0, 0] :=1

  • कतार के अंत में elem डालें

  • जबकि क्यू का आकार> 0, करें

    • temp_elem :=que से पहले एलीमेंट को डिलीट करें

    • अगर temp_elem.a 0 है और temp_elem.b b है, तो

      • temp_elem.string का पूर्णांक लौटाएं

    • मेरे लिए 0 से 9 की सीमा में, करें

      • x :=(temp_elem.a * 10 + i) mod a

      • y:=temp_elem.b + i

      • अगर y <=b और विज़िट किया गया [x, y] गलत है, तो

        • विज़िट किया गया[x, y] :=1

        • x, y और temp_elem.string के साथ नया तत्व सम्मिलित करें i inque को संयोजित करें

  • वापसी -1

उदाहरण

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

visited = [[0 for x in range(501)] for y in range(5001)]
class Element:
   def __init__(self, a, b, string):
      self.a = a
      self.b = b
      self.string = string
def get_number(a, b):
   que = []
   elem = Element(0, 0, "")
   visited[0][0] = 1
   que.append(elem)
   while len(que) > 0:
      temp_elem = que.pop(0)
      if temp_elem.a == 0 and temp_elem.b == b:
         return int(temp_elem.string)
      for i in range(0, 10):
         x = (temp_elem.a * 10 + i) % a
         y = temp_elem.b + i
         if y <= b and visited[x][y] == False:
            visited[x][y] = 1
            que.append(Element(x, y, temp_elem.string + str(i)))
   return -1

a, b = 50, 2
print(get_number(a, b))

इनपुट

50, 2

आउटपुट

200

  1. दिए गए दो सरणियों से उप-सरणी खोजें जैसे कि उनके पास पायथन में समान योग है

    मान लीजिए कि हमारे पास दो सरणियाँ P और Q हैं जिनका आकार N है, वे संख्या 1 से N तक धारण कर रहे हैं। हमें दिए गए सरणियों से उप-सरणी ढूंढनी है ताकि उनका योग समान हो। अंत में ऐसे उप-सरणी के सूचकांक वापस करें। अगर कोई समाधान नहीं है, तो -1 लौटें। इसलिए, यदि इनपुट P =[2, 3, 4, 5, 6], Q =[9, 3, 2, 6, 5] जै

  1. एक सकारात्मक संख्या एम खोजें जैसे कि जीसीडी (एन ^ एम, एन एंड एम) पायथन में अधिकतम है

    मान लीजिए कि हमारे पास एक संख्या एन है, हमें एक सकारात्मक संख्या एम खोजना है जैसे कि जीसीडी (एन ^ एम, एन एंड एम) जितना संभव हो उतना बड़ा हो और एम <एन। हम इस प्रकार प्राप्त सबसे बड़ा gcd भी लौटा देंगे। तो, अगर इनपुट 20 की तरह है, तो आउटपुट 31 होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - य

  1. पायथन में पंडों के संस्करण और उनकी निर्भरता का पता लगाएं

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