بکندباز

تابعی بنویسید که مقدار پول و لیستی از مقادیر سکه‌ها را دریافت کند و تعداد روش‌های مختلف ساخت مقدار پول با استفاده از سکه‌های داده شده را بشمارد.

مثال

coins_combinations(4, [1, 2]) ➞ 3
# ترکیبات ممکن:
# 1+1+1+1 = 4
# 1+1+2 = 4
# 2+2 = 4

نکات

  1. ترتیب سکه‌ها اهمیت ندارد. یعنی ترکیبات مثل 1+1+2 و 2+1+1 برابر هستند.
  2. تعداد سکه‌ها نامحدود است.
Assert.Equal(3, Backendbaz.CoinsCombinations(4, new int[] { 1, 2 }));
Assert.Equal(4, Backendbaz.CoinsCombinations(10, new int[] { 5, 2, 3 }));
Assert.Equal(0, Backendbaz.CoinsCombinations(11, new int[] { 5, 7 }));
Assert.Equal(1022, Backendbaz.CoinsCombinations(300, new int[] { 5, 10, 20, 50, 100, 200, 500 }));
Assert.Equal(0, Backendbaz.CoinsCombinations(301, new int[] { 5, 10, 20, 50, 100, 200, 500 }));
Assert.Equal(760, Backendbaz.CoinsCombinations(199, new int[] { 3, 5, 9, 15 }));
Assert.Equal(18515, Backendbaz.CoinsCombinations(419, new int[] { 2, 5, 10, 20, 50 }));

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*

تمرینات مرتبط