Если вычисление перемежается (прерывается) вводом промежуточных данных, то нет никакого способа зафиксировать состояние процесса, кроме как используя глобальные переменные.

В этом не может быть ничего плохого или некрасивого: таково условие задачи.