Ловушки сжатия
«Больше на 35 %» превратили в ×0,65
Сначала посмотри, что принято за 100 %.
Если за 100 % взят сжатый файл, то исходный составляет 135 %:
исходный = сжатый × 135 / 100
Служебные данные тоже «сжали»
Заголовок и другая служебная информация обычно
не входят в сжимаемые данные.
Если дан общий лимит:
лимит − заголовок = место под данные
Лимит отнесли не к тому файлу
Читай буквально:
«для хранения сжатого изображения отведено 170 Кбайт»
означает, что 170 Кбайт — это ограничение именно для
сжатого файла.
Исходный файл до сжатия мог быть больше.
Забыли, что изображений несколько
Если весь объём памяти дан, например, для 32 снимков,
нельзя сразу применять его к одному изображению.
сначала находим объём одного снимка
Использовали десятичную дробь
В Python некоторые десятичные дроби хранятся неточно.
170 * 1.35
# 229.50000000000003
Поэтому в таких задачах надёжнее считать процент
целыми числами:
170 * 135 / 100
Перед вычислениями проверь четыре вещи:
что принято за 100 %, к какому файлу относится лимит,
есть ли служебные данные и сколько изображений хранится.