Сложные проценты
Каждый год начисляем проценты в целых копейках.
Как к ней подойти
Увидите, как целочисленные операции и вычисления с дробями помогают обойтись без лишних шагов.
Операции // и % помогают разделить число на целую часть и остаток. Для дробных вычислений следите за точностью и порядком действий: одно и то же число может требовать разного способа обработки.
Ежегодное целочисленное деление отбрасывает дробную часть копейки именно тогда, когда требует условие.
Проверьте перед запуском
- Степенная формула без ежегодного округления даёт другой результат.
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Один денежный счётчик
Ежегодное целочисленное деление отбрасывает дробную часть копейки именно тогда, когда требует условие.
p = int(input())
x = int(input())
y = int(input())
k = int(input())
money = 100 * x + y
for _ in range(k):
money = money * (100 + p) // 100
print(money // 100, money % 100)
Время: O(k). Память: O(1) числовых переменных.
Другой способ: Прибавка и нормализация копеек
Прибавляем целые копейки процентов, после чего выделяем рубли из накопившихся копеек.
p = int(input())
rubles = int(input())
kopecks = int(input())
k = int(input())
for _ in range(k):
increment = (100 * rubles + kopecks) * p // 100
kopecks += increment
rubles += kopecks // 100
kopecks %= 100
print(rubles, kopecks)
Время: O(k). Память: O(1) числовых переменных.