Кодом расчёта аннуитетных платежей не проходит тесты
r = int(input())
p = int(input())
m = int(input())
i = (p/100)/12
k = (i*(i+1)**m)/((i+1)**m-1)
print(k*r*m-r)
в чём проблема кода? Почему он не прошёл некоторые тесты на silvertests?
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
почему формула может не пройти
вводят неверные значения - например треш из букв или отрицательные значения, а код этой ситуации никак не отрабатывает
вводят
p = 0илиm = 0, что вызывает деление на 0вводят числа с плавающей запятой, а вы их принимаете как целочисленные, в результате будут неправильные вычисления
в чём проблемма кода? Почему он не прошёл некоторые тесты на silvertests?
я склоняюсь к 3)
Автор решения: vp_arth
→ Ссылка
Если финальный результат - аннуитетный платёж, то он не корректен
r = 1_000_000
p = 10
m = 12
i = (p/100)/12
k = (i*(i+1)**m)/((i+1)**m-1)
print(f'your={k*r*m-r}; correct={r*i / (1-(1+i)**(-m))}')
your=54990.64676011889; correct=87915.88723000987