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

दिए गए सिक्कों से n रुपये प्राप्त करने के तरीके ढूंढने का पायथन प्रोग्राम

मान लीजिए हमें (1, 2, 5 और 10) मूल्यवर्ग के सिक्के दिए गए हैं। हमें यह ढूंढना है कि इन मूल्यवर्गों का उपयोग करके n को कितने तरीकों से व्यवस्थित किया जा सकता है। हमारे पास count नामक 4 एलिमेंट्स की एक ऐरे है, जहां count[0] 1 के सिक्कों की संख्या दर्शाता है, count[1] 2 के सिक्कों की संख्या दर्शाता है और इसी तरह।

तो, यदि इनपुट n = 27 count = [8,4,3,2] है, तो आउटपुट 18 होगा तो 18 संभावित संयोजन हैं उनमें से कुछ हैं

  • 10*2 + 5*1 + 2*1 = 27

  • 10*2 + 2*3 + 1*1 = 27

  • 10*1 + 5*3 + 2*1 = 27

  • 10*1 + 5*1 + 4*2 + 4*1 = 27

इत्यादि...

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

  • denom := [1,2,5,10]
  • A := आकार (n + 1) की एक ऐरे और 0 से भरें
  • B := A से एक नई सूची
  • i के लिए 0 से (count[0] और n का न्यूनतम) तक की रेंज में, करें
    • A[i] := 1
  • i के लिए 1 से 3 तक की रेंज में, करें
    • j के लिए 0 से count[i] तक की रेंज में, करें
      • k के लिए 0 से n + 1 - j *denom[i] तक की रेंज में, करें
        • B[k + j * denom[i]] := B[k + j * denom[i]] + A[k]
    • j के लिए 0 से n तक की रेंज में, करें
      • A[j] := B[j]
      • B[j] := 0
  • A[n] लौटाएं

उदाहरण

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

denom = [1,2,5,10]
def solve(n, count):
    A = [0 for _ in range(n+1)]
    B = list(A)
    for i in range(min(count[0], n) + 1):
        A[i] = 1
    for i in range(1, 4):
        for j in range(0, count[i] + 1):
            for k in range(n + 1 - j *denom[i]):
                B[k + j * denom[i]] += A[k]
        for j in range(0, n + 1):
            A[j] = B[j]
            B[j] = 0
    return A[n]

n = 27
count = [8,4,3,2]
print(solve(n, count))

इनपुट

27, [8,4,3,2]

आउटपुट

18
  1. Python Program कैसे चलाएं? Python Program कैसे चलाएं?

    Code लिखने के बाद, हमें code को execute करके output प्राप्त करने के लिए run करने की आवश्यकता होती है। Program चलाने पर, हम जांच सकते हैं कि लिखा गया code सही है और desired output produce करता है। Python program चलाना काफी आसान काम है। IDLE पर चलाएं IDLE पर python program चलाने के लिए, दिए गए steps क

  1. Python में सुडोकू ग्रिड हल करने योग्य है या नहीं, इसकी पुष्टि करने का प्रोग्राम Python में सुडोकू ग्रिड हल करने योग्य है या नहीं, इसकी पुष्टि करने का प्रोग्राम

    मान लीजिए हमारे पास एक 9x9 सुडोकू ग्रिड है। हमें यह जांचना है कि वह वैध है या नहीं। केवल भरे हुए सेल को निम्नलिखित नियमों के अनुसार मान्य करने की आवश्यकता है: प्रत्येक पंक्ति में 1-9 के अंक बिना दोहराव के होने चाहिए। प्रत्येक कॉलम में 1-9 के अंक बिना दोहराव के होने चाहिए। ग्रिड के 9 (3x3) सब-बॉक्स

  1. Python प्रोग्राम में कैलेंडर Python प्रोग्राम में कैलेंडर

    Python में calendar नामक एक अंतर्निहित मॉड्यूल है जो कैलेंडर के साथ काम करने के लिए है। हम इस लेख में calendar मॉड्यूल के बारे में जानने जा रहे हैं। calendar मॉड्यूल में सप्ताह सोमवार से शुरू होता है और रविवार पर समाप्त होता है। मॉड्यूल कैलेंडर ग्रेगोरियन कैलेंडर का पालन करता है। आइए calendar मॉड्य