Recursion 为什么这不是递归的例子?
因此,我在某个地方看到(我不确定我脑子里到底在哪里,但如果我记得的话,我会贴一个链接到它),下面的代码不是递归的例子:Recursion 为什么这不是递归的例子?,recursion,Recursion,因此,我在某个地方看到(我不确定我脑子里到底在哪里,但如果我记得的话,我会贴一个链接到它),下面的代码不是递归的例子: void f() { f(); } 现在,这是一个调用自身的函数(尽管是无限的)。为什么这不是递归的一个例子呢?这可能不是最好的例子,但为什么他们会说它根本不是递归呢?这绝对是一个递归函数的例子,完全基于“递归”的定义。简单地说,递归函数是任何调用自身的函数 很难解释为什么有人说这不是在上下文中看到他们的主张(希望是试图为这一主张辩护) 这就是说,它不是一个非常有用的
void f() {
f();
}
现在,这是一个调用自身的函数(尽管是无限的)。为什么这不是递归的一个例子呢?这可能不是最好的例子,但为什么他们会说它根本不是递归呢?这绝对是一个递归函数的例子,完全基于“递归”的定义。简单地说,递归函数是任何调用自身的函数 很难解释为什么有人说这不是在上下文中看到他们的主张(希望是试图为这一主张辩护) 这就是说,它不是一个非常有用的递归函数,也许这就是他们的出发点。任何调用该函数的程序在溢出堆栈后最终都会崩溃。有时,这称为“堆栈溢出”错误。:-)
有用的递归函数必须包含某种导致递归最终停止的条件代码。这绝对是递归函数的一个例子,完全基于“递归”的定义。简单地说,递归函数是任何调用自身的函数 很难解释为什么有人说这不是在上下文中看到他们的主张(希望是试图为这一主张辩护) 这就是说,它不是一个非常有用的递归函数,也许这就是他们的出发点。任何调用该函数的程序在溢出堆栈后最终都会崩溃。有时,这称为“堆栈溢出”错误。:-)
有用的递归函数必须包含某种导致递归最终停止的条件代码。您的代码示例没有终止的方法,可能会永远持续下去,可能导致堆栈溢出异常。递归函数有一种通过基本情况条件终止的简单方法。阅读本文以获得正确的定义和解释。您的代码示例没有终止的方法,可能会永远持续下去,可能导致堆栈溢出异常。递归函数有一种通过基本情况条件终止的简单方法。阅读文章要有正确的定义和解释。 < P>这是肯定的递归,这里是威斯康星大学麦迪逊的一些注释。实际使用
void f()
作为示例
该网站可能一直在试图让人们明白如何避免递归。。不确定源链接。 < P>这肯定是递归,这里是威斯康星大学麦迪逊的一些注释。实际使用
void f()
作为示例
该网站可能一直在试图让人们明白如何避免递归。。如果没有源链接,则不确定。这是递归的示例,但无法结束它,您必须使用条件终止它。这是递归的示例,但无法结束它,您必须使用条件终止它。它是递归的…它是递归的…当然也有一些有用的递归函数没有基本情况。例如,纯函数式语言中的无限循环。适当的尾部调用优化将防止堆栈溢出。当然,也有一些有用的递归函数没有基本情况。例如,纯函数式语言中的无限循环。正确的尾部调用优化将防止堆栈溢出。