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

पायथन में न्यूनतम अंक हटाकर संख्या से सबसे बड़ा पूर्ण घन खोजें


मान लीजिए हमारे पास एक संख्या N है। हमें वह सबसे बड़ा पूर्ण घन निर्धारित करना है जिसे संख्या से न्यूनतम अंक हटाकर (संभवतः 0) उत्पन्न किया जा सकता है। हम दिए गए संख्या से किसी भी अंक को हटा सकते हैं। जैसा कि हम जानते हैं, एक संख्या N पूर्ण घन कहलाती है यदि N = M³ किसी पूर्णांक M के लिए।

इसलिए, यदि इनपुट 806 है, तो आउटपुट 8 होगा, क्योंकि हम 0 और 6 को हटाकर 8 प्राप्त कर सकते हैं, जो 2 का पूर्ण घन है।

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

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

  • preProcess() फ़ंक्शन परिभाषित करें जो n लेता है।
  • temp_cubes := [] खाली सूची बनाएं।
  • i को 1 से ceil(n^(1/3)) तक के लिए:
    • cube = i³
    • cubeString := str(cube)
    • cubeString को temp_cubes के अंत में जोड़ें।
  • temp_cubes लौटाएं।
  • solve() फ़ंक्शन परिभाषित करें जो num, temp_cubes लेता है।
  • temp_cubes को उल्टा करें।
  • totalCubes := len(temp_cubes)
  • i को 0 से totalCubes - 1 तक के लिए:
    • temp := temp_cubes[i]
    • digitsInCube := len(temp)
    • index := 0
    • digitsInNumber := len(num)
    • j को 0 से digitsInNumber - 1 तक के लिए:
      • यदि num[j] == temp[index], तो index := index + 1
      • यदि digitsInCube == index, तो temp लौटाएं।
  • "Not Possible" लौटाएं।
  • मुख्य विधि से:
    • temp_cubes := preProcess(n)
    • num := str(n)
    • ans := solve(num, temp_cubes)
    • ans लौटाएं।

उदाहरण

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

import math

def preProcess(n):
    temp_cubes = []
    for i in range(1, math.ceil(n ** (1. / 3.))):
        cube = i ** 3
        cubeString = str(cube)
        temp_cubes.append(cubeString)
    return temp_cubes

def solve(num, temp_cubes):
    temp_cubes = temp_cubes[::-1]
    totalCubes = len(temp_cubes)
    for i in range(totalCubes):
        temp = temp_cubes[i]
        digitsInCube = len(temp)
        index = 0
        digitsInNumber = len(num)
        for j in range(digitsInNumber):
            if num[j] == temp[index]:
                index += 1
            if digitsInCube == index:
                return temp
    return "Not Possible"

def getLargestCube(n):
    temp_cubes = preProcess(n)
    num = str(n)
    ans = solve(num, temp_cubes)
    return ans

n = 806
print(getLargestCube(n))

इनपुट

806

आउटपुट

8
  1. - दिए गए अंकों से बनने वाली सबसे बड़ी संख्या खोजें C++ में

    मान लीजिए हमारे पास अंकों का एक ऐरे है। हमें ऐरे के सभी अंकों का उपयोग करके प्राप्त की जा सकने वाली अधिकतम संख्या खोजनी है। तो यदि ऐरे [3, 3, 9, 6, 2, 5] जैसा है, तो अधिकतम संख्या 965332 हो सकती है। समस्या से, हम देख सकते हैं कि हम अंकों को गैर-बढ़ते क्रम में आसानी से सॉर्ट कर सकते हैं, फिर उन्हें प

  1. - पायथन में रोड ट्रिप में न्यूनतम अंतर-देश यात्रा खोजने का प्रोग्राम

    मान लीजिए हमें एक रोड ट्रिप की योजना बनानी है जिसमें विभिन्न देशों के विभिन्न शहरों का दौरा करना शामिल है। हमारे पास सड़कों की एक सूची R है, जहां प्रत्येक तत्व (x, y, cost) के रूप में वर्णित है। x सड़क के प्रारंभिक शहर को दर्शाता है, y गंतव्य शहर को दर्शाता है, और cost उस सड़क से यात्रा करने की लागत

  1. पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम

    मान लीजिए हमें एक ग्राफ दिया गया है और हमें उसमें सबसे बड़े क्लिक का न्यूनतम आकार ढूंढना है। एक ग्राफ का क्लिक ग्राफ का एक उपसमुच्चय है जहां हर जोड़ी शीर्ष आसन्न होती है, यानी हर जोड़ी शीर्ष के बीच एक किनारा मौजूद होता है। ग्राफ में सबसे बड़ा क्लिक ढूंढना बहुपद समय में संभव नहीं है, इसलिए छोटे ग्रा