尾递归与递归

时间:2018-06-13 16:03:03

标签: recursion visual-studio-2015

我有两个功能,一个是"正常"递归,另一个使用尾调用,因此它是尾递归: "正常"递归:

 int factorial(int num)
    {
        if (num == 1)
            return num;
        return num*factorial(num - 1);
    }

尾递归:

int factorial_n(int num,int acc=1)
{
    if (num == 1)
        return acc;
    return factorial_n(num - 1,acc);
}
int call(int num)
{
    return factorial_n(num, 1);
}

我试图在使用尾递归时可视化堆栈的差异,
在调试模式下使用visual studio的调用栈,但我看不出任何区别! 我误解了什么吗? 如何可视化这两个函数之间的差异?

0 个答案:

没有答案