C 为什么斐波那契序列的索引需要小于或等于1?
对于赋值,我需要创建一个代码,它可以在斐波那契序列中显示元素C 为什么斐波那契序列的索引需要小于或等于1?,c,fibonacci,C,Fibonacci,对于赋值,我需要创建一个代码,它可以在斐波那契序列中显示元素n。我已经知道了怎么做,你可以在下面找到我的代码,但我不明白为什么索引值需要小于或等于1 这是我的密码: int ft_fibonacci(int index) { if (index < 0) return (-1); if (index <= 1) return (index); else return (ft_fibonacci(index - 1
n
。我已经知道了怎么做,你可以在下面找到我的代码,但我不明白为什么索引值需要小于或等于1
这是我的密码:
int ft_fibonacci(int index)
{
if (index < 0)
return (-1);
if (index <= 1)
return (index);
else
return (ft_fibonacci(index - 1) + ft_fibonacci(index - 2));
}
int-ft\u斐波那契(int-index)
{
如果(指数<0)
返回(-1);
如果(index您应该已经知道,当您编写递归函数时,您需要有一个基本情况,您已经知道结果并可以返回它,以停止应用递归
斐波那契数列的数字是:0、1、1、2、3、5、8、13、21、[…]等等。现在,很明显第一个数字是0。不过,你必须决定的是,你想给第一个数字分配什么索引
在函数中,此if
表示基本情况:
if(index您应该已经知道,当您编写递归函数时,您需要有一个基本情况,您已经知道结果并可以返回它,以停止应用递归
斐波那契数列的数字是:0、1、1、2、3、5、8、13、21、[…]等等。现在,很明显第一个数字是0。不过,你必须决定的是,你想给第一个数字分配什么索引
在函数中,此if
表示基本情况:
if(这基本上是递归的定义:你有一个大问题(fib(n)
,在你的例子中),你把它分解成更小的问题(fib(n-1)
和fib(n-2)
),然后递归地解决。递归需要在某个时候停止(在您的情况下,当索引时,如果有人使用无效参数调用您的函数(例如-2
)?请考虑递归调用…当索引==2
(例如)并且您调用ft\u fibonacci(索引-2)时
,则递归调用将有一个值为0
的索引。我假设您指的是line if(index),您应该知道这是一个不应使用递归的完美示例。对ft_fibonacci()的递归调用数
将随着索引的增加而呈指数增长。计算ft_fibonacci(45)
可能需要很多时间。迭代循环方法会快得多(例如,inta=1,b=1,t;for(inti=0;这基本上是递归的定义:你有一个大问题(fib(n)
)然后你把它分解成更简单的问题(fib(n-1)
和fib(n-2)
,在你的例子中)然后递归解决。递归需要在某个时候停止(在你的例子中,当索引有人用无效参数调用你的函数(例如-2
)?还要考虑递归调用……当索引==2
(例如)调用ft\u fibonacci(索引-2)
,那么递归调用将有一个索引,其值为0
。我假设您的意思是如果(index您应该知道,这是一个不应该使用递归的完美例子。对ft\u fibonacci()
的递归调用的数量将随着index
而呈指数增长。计算ft\u fibonacci(45)
可能需要花费很多时间。迭代循环方法会快得多(例如,int a=1,b=1,t;)(int i=0;i