Был задан конкретный вопрос, почему использовался цикл вместо математического выражени, какой был получен ответ?
там всё просто... там целочисленные вычисления...
Формулы годятся для оценок, но не дадут значений, совпадающих с результатами метода бисекции. Более того, на разных платформах они могут давать разные результаты... Простой пример в питоне, те же числа:
8343.240769 * ((0.03125 / 1.16394928) ** (1.0 / 3)) * 33 / (365 * 33 + 8)
И совсем другой результат: 6.840043785996486
Для полной идентичности следует использовать метод половинного деления. Тогда
всегда будет выдавать совпадающие значения, где бы ни исполнялось и на чем бы ни было написано. Если же целью не является разработка альтернативного клиента или сборщика блоков, то формулы вполне применимы для оценок, о чем и сказал сегодня Пеньку.
Проблема основная в том, что для нормальной переносимости на разные платформы при вычислении награды нежелательно пользоваться чем-то помимо целочисленной арифметики. Поэтому и приходится иногда прибегать к более громоздким, но универсальным решениям.