|
|
1
16
注意Fibonacci函数在这里被调用了9次。一般来说,nave递归fibonacci函数 exponential running time ,这通常是件坏事。 |
|
2
6
这是一个典型的例子 recursive function
如果你仔细阅读,你会发现它会自称,
递归
基本情况
输出如下:
编写递归函数时需要考虑的重要部分是:
如果我们忘记了会发生什么
2.确保递归调用以某种方式减少到基本情况
|
|
|
3
4
fibonacci序列可以用函数语言更简洁地表达。
|
|
|
4
3
这是经典的函数递归。 http://en.wikipedia.org/wiki/Recursive_function 你该开始了。基本上,如果x小于或等于1,它返回1。否则,它在每一步都减少x。 |
|
|
5
3
当你的问题被标记为C++时,我不得不指出,这个函数也可以在编译时作为模板来实现,如果你有一个编译时变量来使用它。
我已经有一段时间没写了,所以可能有点不对劲,但应该是这样。 |
|
|
6
2
是的,斐波那契函数被再次调用,这叫做递归。 就像你可以调用另一个函数一样,你也可以再次调用同一个函数。由于函数上下文是堆叠的,因此可以调用相同的函数,而不会干扰当前执行的函数。
|
|
7
1
在C和大多数其他语言中,函数可以像其他函数一样调用自己。这叫做递归。 如果它看起来很奇怪,因为它与您将要编写的循环不同,那么您是对的。这不是一个很好的递归应用程序,因为查找 n 斐波那契数需要两倍于求 n -1th,导致运行时间呈指数增长 . 迭代Fibonacci序列,在继续下一个Fibonacci数之前记住上一个Fibonacci数,可以提高运行时的线性度 ,应该是这样的。 递归本身并不可怕。实际上,我刚才描述的循环(以及任何循环)都可以实现为递归函数:
|
|
|
8
0
对于n=10,例如: fib[1]fib[2]fib[3]fib[4]fib[5]fib[6]fib[7]fib[8]fib[9]fib[10] |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |