1.1.17

上次更新:2019-04-17
发现了题解错误/代码缺陷/排版问题?请点这里:如何:提交反馈

解答

书中已经给出了解释。

递归时结束条件必须放在递归语句的前面,否则会不断展开而无法结束。

代码

static void Main(string[] args)
{
    Console.WriteLine($"{exR2(6)}");//抛出 StackOverflow Exception
}

public static string exR2(int n)
{
    string s = exR2(n - 3) + n + exR2(n - 2) + n;//运行到 exR2 即展开,不会再运行下一句
    if (n <= 0) return "";
    return s;
}
上一题 下一题