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

n की निकटतम संख्या ज्ञात करने का कार्यक्रम जहाँ सभी अंक अजगर में विषम हैं

मान लीजिए कि हमारे पास एक संख्या n है, हमें अगला निकटतम मान ज्ञात करना है जहाँ सभी अंक विषम हैं। जब n के सबसे करीब होने के लिए दो मान बंधे हों, तो बड़ा मान लौटाएं।

इसलिए, यदि इनपुट n =243 जैसा है, तो आउटपुट 199 होगा।

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

  • प्रथम_सम:=-1
  • s :=n स्ट्रिंग के रूप में
  • l :=s का आकार
  • मैं के लिए 0 से l की सीमा में, करते हैं
    • यदि s[i] सम है, तो
      • प्रथम_सम:=मैं
      • लूप से बाहर आएं
  • यदि first_even -1 के समान है, तो
    • वापसी n
  • बड़ा :=1 + s का सांख्यिक मान [सूचकांक 0 से i तक]
  • यदि s[i] "0" के समान है, तो
    • यदि s[i - 1] "1" के समान है, तो
      • छोटा :=s का सांख्यिक मान [सूचकांक 0 से i तक] - 1
    • अन्यथा,
      • छोटा:=s का सांख्यिक मान [सूचकांक 0 से i तक] - 11
  • अन्यथा,
    • छोटा :=s का सांख्यिक मान [सूचकांक 0 से i तक] - 1
  • i के लिए i + 1 से l की श्रेणी में, करें
    • बड़ा:=बड़ा संयोजन "1"
    • छोटा:=छोटा संयोजन "9"
  • बड़ा:=बड़े का अंकीय मान, छोटा:=छोटा का अंकीय मान
  • d2 :=बड़ा - n, d1 :=n - छोटा
  • यदि d1
  • छोटा लौटें
  • अन्यथा जब d1>=d2, तब
    • बड़ा रिटर्न
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    class Solution:
       def solve(self, n):
          first_even = -1
          s = str(n)
          l = len(s)
          for i in range(l):
             if int(s[i]) % 2 == 0:
                first_even = i
                break
          if first_even == -1:
             return n
          big = str(int(s[: i + 1]) + 1)
          if s[i] == "0":
             if s[i - 1] == "1":
                small = str(int(s[: i + 1]) - 1)
             else:
                small = str(int(s[i : i + 1]) - 11)
          else:
             small = str(int(s[: i + 1]) - 1)
    
          for i in range(i + 1, l):
             big += "1"
             small += "9"
    
          big, small = int(big), int(small)
          d2 = big - n
          d1 = n - small
          if d1 < d2:
             return small
          elif d1 >= d2:
             return big
         
    ob = Solution()
    n = 243
    print(ob.solve(n))

    इनपुट

    243

    आउटपुट

    199

    1. पायथन का उपयोग करके सभी नोड्स तक पहुंचने के लिए न्यूनतम संख्या में कोने खोजने का कार्यक्रम

      मान लीजिए कि हमारे पास एक निर्देशित चक्रीय ग्राफ है, जिसमें n कोने हैं और नोड्स 0 से n-1 तक गिने जाते हैं, ग्राफ को किनारे की सूची द्वारा दर्शाया जाता है, जहां किनारों [i] =(यू, वी) नोड यू से एक निर्देशित किनारे का प्रतिनिधित्व करता है। नोड वी। हमें शिखर का सबसे छोटा सेट ढूंढना है जिससे ग्राफ में सभ

    1. अजगर में सभी पेड़ों को जलाने में लगने वाले दिनों की संख्या का पता लगाने का कार्यक्रम

      मान लीजिए हमारे पास एक 2डी मैट्रिक्स है जो एक जंगल का प्रतिनिधित्व करता है जहां तीन प्रकार की कोशिकाएं हैं:0 खाली सेल 1 ट्री सेल 2 फायर सेल पर पेड़ हर दिन, एक पेड़ आग पकड़ता है जब एक आसन्न होता है (ऊपर, नीचे, बाएं, दाएं, नहीं विकर्ण) पेड़ में आग लगी है। हमें यह पता लगाना होगा कि प्रत्येक पेड़ में आग

    1. किसी संख्या के विषम गुणनखंडों का योग ज्ञात करने के लिए पायथन कार्यक्रम

      इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन किसी संख्या इनपुट n को देखते हुए, कार्य किसी संख्या के विषम गुणनखंडों का योग ज्ञात करना है। यहां हमें सबसे पहले सभी सम कारकों को खत्म करने की जरूरत है। सभी सम गुणनखंडों को हटाने के लिए, हम बार-बार n को 2 से विभाज्य ह