сначала так и было, но потом где-то накасячил и результат всегда прибавлял какое-нить число. найти ошибку так и не смог, пришлось менять...
впринципе, ответ на вопрос "можно ли сделать это одной строчкой кода", я получил. Буду переделывать.
но всё-равно очень хотелось бы посмотреть на способы реализации.