تابعی بنویسید که مقدار پول و لیستی از مقادیر سکهها را دریافت کند و تعداد روشهای مختلف ساخت مقدار پول با استفاده از سکههای داده شده را بشمارد.
مثال
coins_combinations(4, [1, 2]) ➞ 3
# ترکیبات ممکن:
# 1+1+1+1 = 4
# 1+1+2 = 4
# 2+2 = 4
نکات
- ترتیب سکهها اهمیت ندارد. یعنی ترکیبات مثل
1+1+2
و2+1+1
برابر هستند. - تعداد سکهها نامحدود است.
self.assertEqual(coins_combinations(4, [1, 2]), 3) self.assertEqual(coins_combinations(10, [5, 2, 3]), 4) self.assertEqual(coins_combinations(11, [5, 7]), 0) self.assertEqual(coins_combinations(300, [5,10,20,50,100,200,500]), 1022) self.assertEqual(coins_combinations(301, [5,10,20,50,100,200,500]), 0) self.assertEqual(coins_combinations(199, [3,5,9,15]), 760) self.assertEqual(coins_combinations(419, [2,5,10,20,50]), 18515)
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات