Ответ - локальная переменная. Когда вы запускаете этот код, первый вызов divide
создает экземпляр переменной answer
, устанавливает его в 0, а затем увеличивает его до 1. Затем, когда вы снова рекурсивно вызываете divide
, создается 1004 * новый экземпляр переменной answer
, устанавливает для этого экземпляра значение 0, а затем увеличивает его до 1.
В вашем последнем вызове divide
он создает новый экземпляр переменной answer
, устанавливает этот экземпляр в 0, но теперь number<=dividend
не увеличивает его, и он возвращает тот экземпляр answer
, который равен 0.