版上各位好,
小弟最近刚学C++
目前看到递回函式的地方有点小问题
递回函式的经典范例就是拿来计算阶乘
但我有一个地方有点不太懂
程式码如下 :
int factorial(int n) {
if (n == 1)
return 1;
else
return (n * factorial(n - 1));
}
在输入的n不为1的时候会一直不断地呼叫自己做计算
当n==1时停止
但当它不断呼叫自己直至n=1时不是会被return 1吗?
为何最终的答案还是阶乘正确计算的数值呢?
请教版上各位大神解答
感谢!