这里的第二次尝试,我只是想知道这是否被认为是递归函数。
该函数的目的是获取一个字符串和 如果第一个元素等于最后一个元素 然后将最后一个元素追加到列表中并且不返回任何内容, else调用istelf并从index [1]传递相同的字符串 最后将第一个元素附加到列表
我知道需要在if语句上进行错误检查。然而,我只是这样做试图让我的头围绕递归...努力说实话。
此外,我绝不会写一个这样的程序,如果它只是微不足道我只想检查我的理解是否正确到目前为止。
?????????.B0????????.jpg
再次感谢。
答案 0 :(得分:2)
这是递归吗?
如果函数执行中的任何一点它自己调用,则认为是递归的。这在您的示例中发生,因此recursiveMessage
确实是递归的。
那么更快的递归或迭代呢?
由于必须在每个递归调用的stack frame上创建新的call stack,递归通常会慢得多并占用更多空间。如果您知道您的递归函数需要多次运行,迭代是最好的路径。
作为一个有趣的旁注,许多编译器实际上通过将其转换为循环来优化递归函数。