printЗанятие 6 (дорешивание)

printC. Кредитный калькулятор

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Почти все банки в России используют схему погашения кредита аннуитетными платежами. Каждый месяц выплачивается одинаковая сумма, независимо от периода погашения (начало или конец срока). Размер такого платежа является некой усредненной суммой выплат по кредиту. Аннуитетный платеж в начале периода погашения состоит в основном из процентов по кредиту и только малая часть – тело кредита. Потом эта пропорция выравнивается, и к концу периода погашения выплачивается практически только тело кредита.
Напишите программу, которая по сумме кредита, сроку и процентной ставке, выводит схему погашения кредита. Месячная процентная ставка рассчитывается из годовой по следующей формуле:
`P_m=((1+P_g/100)^{1/12}-1)*100`
Начисление процентов за `i`-й месяц производится по следующей формуле:
`D_i=[S_i*P_m+0.9]/100`
где `S_i` – остаток долга на начало `i`-го месяца, [ ] – целая часть числа.
Остаток долга вычисляется по следующей формуле:
`S_{i+1}=S_i+D_i-R_i`
где `R_i` – платеж по кредиту.
Все платежи `R_i` должны быть равными, кроме последнего `R_k`. Последний платеж должен погасить остаток долга и месячный процент по нему, и должен быть как можно ближе к ежемесячному платежу `R_i`, но не превышать его.
Ввод содержит три целых числа – сумма кредита `S_1` (`10^3\ ≤\ S_1\ ≤\ 10^6`), срок кредита в месяцах `k` (`3\ ≤\ k\ ≤\ 60`) и годовая процентная ставка `P_g` (`1\ ≤\ P_g\ ≤\ 100`).
Вывести схему погашения кредита. Вывод должен содержать `k` строк, в каждой строке 5 чисел: номер месяца, остаток долга на начало месяца, процентные начисления за месяц, размер платежа по кредиту в этот месяц и общая сумма платежей.

Пример ввода

10000 3 24

Пример вывода

1 10000.00 180.88 3454.65 3454.65
2 6726.23 121.67 3454.65 6909.30
3 3393.25 61.38 3454.63 10363.93
loading