Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么斐波那契序列的索引需要小于或等于1?_C_Fibonacci - Fatal编程技术网

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