Вопрос такой: если изначально есть некоторое целое число, которое надо разделить на части согласно некоторому коэффициенту и при этом получаются бесконечные периодические дроби, как сходу определить, до какого знака надо округлить получающиеся дроби, чтобы в сумме они дали целое число?
Вот 3 примера, взятых из задачи по экономике (коэффициент k не округляем, округляем только сами числа a, b и c).
Есть 3 числа: 59500, 30000 и 29500. Каждое из этих чисел надо разбить на 3 части согласно коэффициентам k.
Число


(1)



Округляем числа a, b и с и добиваемся того, чтобы выполнялось равенство (1):
Округляем до целого:

Округляем до десятых:

Округляем до сотых:

Округляем до тысячных:

Округляем до десятитысячных:

Число


(2)



Округляем числа a, b и с и добиваемся того, чтобы выполнялось равенство (2):
Округляем до целого:

Округляем до десятых:

Округляем до сотых:

Округляем до тысячных:

Округляем до десятитысячных:

Число


(3)




Округляем числа a, b и с и добиваемся того, чтобы выполнялось равенство (3):
Округляем до целого:

Округляем до десятых:

Округляем до сотых:

Округляем до тысячных:

Округляем до десятитысячных:

Еще раз напомню вопрос: как сразу найти нужное округление, чтобы получить в итоге суммирования исходное целое число?
Я понимаю, что уравнение вида

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