Я пытался понять приведенный ниже фрагмент кода, но не совсем понял логику вывода.Рекурсия функции C/C++
int Func(int x, int y){
if (x < y)
return 0;
else
return Func(x - y, y) + 1;
}
int main()
{
int x = 50, y=10;
printf("%d \n",Func(x,y));
return 0;
}
Выход для вышеупомянутой программы, очевидно, 5. Может кто-нибудь тела мне, что "+1"
(в return Func(x - y, y) + 1;
) в методе типа рекурсии на самом деле означает и как это есть поток выполнения.?
Если я только что выполнил return Func(x-y,y);
, тогда выход 0, это нормально. Но почему в первом случае выход равен 5?
«+ 1» означает добавить его к результату 'Func' перед возвратом. –
Как вы говорите, что это * очевидно 5 *, если вы не знаете, как это получилось? –
Я выполнил в Visual studio, прежде чем публиковать этот вопрос. Я был удивлен результатом этого. Вот почему поднял вопрос. –