diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2024-09-09 15:10:21 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2024-09-09 15:10:21 +0800 |
| commit | 90e81fa7a4d4ba2eb482542cde3401f8c166adc7 (patch) | |
| tree | 32574bfed25f9181a5281395f5dc3dd0321e0de4 /challenge-285/pokgopun/python/ch-2.py | |
| parent | d7a3db86265e08657df10663e50d63d87d6695d1 (diff) | |
| parent | 3c67a5382758155040d6598a2fa01ca5fd6d25d9 (diff) | |
| download | perlweeklychallenge-club-90e81fa7a4d4ba2eb482542cde3401f8c166adc7.tar.gz perlweeklychallenge-club-90e81fa7a4d4ba2eb482542cde3401f8c166adc7.tar.bz2 perlweeklychallenge-club-90e81fa7a4d4ba2eb482542cde3401f8c166adc7.zip | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-285/pokgopun/python/ch-2.py')
| -rw-r--r-- | challenge-285/pokgopun/python/ch-2.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/challenge-285/pokgopun/python/ch-2.py b/challenge-285/pokgopun/python/ch-2.py new file mode 100644 index 0000000000..54396ce3f7 --- /dev/null +++ b/challenge-285/pokgopun/python/ch-2.py @@ -0,0 +1,72 @@ +### https://theweeklychallenge.org/blog/perl-weekly-challenge-285/ +""" + +Task 2: Making Change + +Submitted by: [50]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 + __________________________________________________________________ + + Last date to submit the solution 23:59 (UK Time) Sunday 8th September + 2024. + __________________________________________________________________ + +SO WHAT DO YOU THINK ? +""" +### solution by pokgopun@gmail.com + +def mc(amount: int): + c = 0 + for a50 in range(0,amount+1,50): + for a25 in range(0,amount-a50+1,25): + for a10 in range(0,amount-a50-a25+1,10): + c += (amount-a50-a25-a10)//5 + 1 + return c + +import unittest + +class TestMc(unittest.TestCase): + def test(self): + for inpt, otpt in { + 9: 2, + 15: 6, + 100: 292, + }.items(): + self.assertEqual(mc(inpt),otpt) + +unittest.main() |
