我一直在尝试理解下面的代码片段,但对输出背后的逻辑还不太明白。
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
的结果之前将其加一。 - Mark B