求大神解答
觉得最后结果不是应该result=1吗?为什么会是120,最后不是进入了这个条件语句了?
else if(n==0||n==1)
{
result=1;
}
为什么不是返回的result=1
觉得最后结果不是应该result=1吗?为什么会是120,最后不是进入了这个条件语句了?
else if(n==0||n==1)
{
result=1;
}
为什么不是返回的result=1
2015-10-11
递归是在函数中再次调用自己,也就是层层调用。
最后一次调用factorial——也就是最深的那次调用——肯定是进入这个判断分支了,会返回1。但并不是返回给main中的num,这个1会返回给前一次调用的factorial函数。 然后这层层调用会依次将返回值返回给调用者,直到返回至最早的那次factorial函数调用,再返回给main中的num。
更具体的说明请看这里我的回答: http://www.imooc.com/qadetail/90499
举报