Мінімальний Платіж для Кредитної Карти за допомогою бінарного пошуку

2. Katas

Проблема:

Написати програму, яка повертає Мінімальний Платіж для Кредитною Карткою. Який погасить непогашений залишок, якщо його платити кожен місяць протягом року.За допомогою бінарного пошуку

Примітка: Мінімальний Платіж це фіксована сума протяг усіх 12 місяців.

Для цього дається дві змінні на вхід в функцію:

  1. outStandingBalance - непогашений залишок на кредитній карті.
  2. yearlyPercentRate - річна процентна ставка.

Примітка: Якщо ви хочете дізнатися, як порахувати непогашений залишок після одного місяця, дивіться в розділі нижче Приклад.

Завдання:

Написати функцію, яка повертає такий рядок: "Мінімальний Платіж щомісяця складає: b | Спроб використано: c", де b - непогашений залишок (заокруглений до другої цифри після коми), який повернула функція і c - кількість спроб, які використовувала функція для пошуку мінімального платежу.

Приклад:

Щоб знайти непогашений залишок після одного місяця, потрібно дотримуватися такого алгоритму:

  1. Рахуємо місячну процентну ставку:
    monthlyPercentRate = yearlyPersentRate/12
  2. Рахуємо нижньою і верхньою межами:
    lowerPay = start_balance/12
    upperPay = (start_balance * (1 + monthlyPercentRate)**12)/12.0
  3. Рахуємо мінімальний платіж, який можемо зробити в місяці:
    minPay = (upperPay + lowerPay)/2
  4. Рахуємо ннепогашений залишок, одною дією. Розгорнуте рішення дивіться в 2.Katas (Little Python), перейшовши за посилання:
    utStandingBalance = outStandingBalance - minPay + ((outStandingBalance - minPay) * monthlyPercentRate)

Примітка: Основна частина алгоритму бінарного пошуку, залишається за вами.

Дані для перевірки:

creditCardMinPay_BS - назва функції
  1. creditCardMinPay_BS(320000,0.2) --> "Мінімальний Платіж щомісяця складає: 29157.09 | Спроб використано: 17"
  2. creditCardMinPay_BS(999999,0.18) --> "Мінімальний Платіж щомісяця складає: 90325.02 | Спроб використано: 22"
  3. creditCardMinPay_BS(999999,0.18) --> "Мінімальний Платіж щомісяця складає: 32809.62 | Спроб використано: 20"
де "-->" означає після запуску програми

Примітка: Для порівняння можете запустити одне зі значень за допомогою програми, яку ми робили в 2.Katas (Median Python). Алгоритми це сила?

Що далі ?

Программа не виходить або працює не зовсім точно, перейдіть за посиланням solution і подивіться пояснення до вирішення проблеми, це вам допоможе.

Якщо у вас все вийшло, можете перейти по посиланню solution і порівняти своє рішення з тим яке там є.

Якщо ваше рішення не збігається з моїм рішення, то я за вас дуже радий. Поділітся їм зі мною, я буду вам дуже вдячний і тоді я додам його в папку solution. Як додати своє рішення дивіться тут.

Подивіться рішення или завітайте на Github сторінку :