aboutsummaryrefslogtreecommitdiff
path: root/challenge-285/paulo-custodio/python/ch-2.py
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-09-02 22:13:41 +0100
committerGitHub <noreply@github.com>2024-09-02 22:13:41 +0100
commitd580b9b447884482e4d873cd5547bdfb32b52379 (patch)
treede38e962ea63e888520293125a50b34a5399bdff /challenge-285/paulo-custodio/python/ch-2.py
parent25b6f89a6bbb4860b072d2f20ab72d6f4e4aa57d (diff)
parent9abb58c9208783fbb2ab6c7b0c25adad8168d5e7 (diff)
downloadperlweeklychallenge-club-d580b9b447884482e4d873cd5547bdfb32b52379.tar.gz
perlweeklychallenge-club-d580b9b447884482e4d873cd5547bdfb32b52379.tar.bz2
perlweeklychallenge-club-d580b9b447884482e4d873cd5547bdfb32b52379.zip
Merge pull request #10762 from pauloscustodio/master
Add solutions
Diffstat (limited to 'challenge-285/paulo-custodio/python/ch-2.py')
-rw-r--r--challenge-285/paulo-custodio/python/ch-2.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/challenge-285/paulo-custodio/python/ch-2.py b/challenge-285/paulo-custodio/python/ch-2.py
new file mode 100644
index 0000000000..9ebd768aa6
--- /dev/null
+++ b/challenge-285/paulo-custodio/python/ch-2.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python3
+
+# Challenge 285
+#
+# Task 2: Making Change
+# Submitted by: David Ferrone
+#
+# Compute the number of ways to make change for given amount in cents. By using
+# the coins e.g. Penny, Nickel, Dime, Quarter and Half-dollar, in how many
+# distinct ways can the total value equal to the given amount? Order of coin
+# selection does not matter.
+#
+# A penny (P) is equal to 1 cent.
+# A nickel (N) is equal to 5 cents.
+# A dime (D) is equal to 10 cents.
+# A quarter (Q) is equal to 25 cents.
+# A half-dollar (HD) is equal to 50 cents.
+#
+# Example 1
+#
+# Input: $amount = 9
+# Ouput: 2
+#
+# 1: 9P
+# 2: N + 4P
+#
+# Example 2
+#
+# Input: $amount = 15
+# Ouput: 6
+#
+# 1: D + 5P
+# 2: D + N
+# 3: 3N
+# 4: 2N + 5P
+# 5: N + 10P
+# 6: 15P
+#
+# Example 3
+#
+# Input: $amount = 100
+# Ouput: 292
+
+import sys
+
+COINS = [50,25,10,5,1]
+
+def compute_num_ways(amount, coins):
+ while len(coins) > 1 and coins[0] > amount:
+ coins = coins[1:]
+ if len(coins) == 1:
+ return 1
+ count = 0
+ for v in range(0, amount+1, coins[0]):
+ count += compute_num_ways(amount-v, coins[1:])
+ return count
+
+print(compute_num_ways(int(sys.argv[1]), COINS))