gpt4 book ai didi

c - 在 C 中使用递归的斐波那契数列

转载 作者:行者123 更新时间:2023-11-30 20:03:15 24 4
gpt4 key购买 nike

我正在尝试(但失败)使用递归打印斐波那契数列。我确信这是非常非常基本的,但我似乎无法理解。请告诉我我做错了什么,谢谢!

#include <stdio.h>

int fib(int a, int i)
{
int nextnum, num1 = nextnum - 1, num2 = nextnum - 2;
for (i = 0; i >= a; i++) {
nextnum = num1 + num2;
printf("%d", nextnum);
i++;
fib(a, i);
}
}

int main(void)
{
int a, i = 0;

printf("Enter a number for fib series: ");
scanf("%d", &a);

if (a == 1 || a == 2) {
printf("Enter higher number please!\n");
}
else {
fib(a, i);
}
}

最佳答案

斐波那契数经常被用作递归的介绍,因为它们本质上是递归的。事实上,在任何语言中递归地实现它们都是微不足道的。顺便说一句,出于实际目的,它通常不是实现斐波那契数列的最佳方法。

根据定义,Fib(X) = Fib(X - 1) + Fib(X - 2)。这就是递归。唯一缺少的是我们如何停止递归,并且我们知道 Fib(0) 与 Fib(1) 相同,都是 1。

我们如何将其翻译成 C 语言?非常简单,几乎是一对一的映射!

unsigned int fib(unsigned int k) {
// First, check our exit (stop) conditions:
if (k == 0 || k == 1) return 1;

// Now recursive part
return fib(k - 1) + fib(k - 2);
}

关于c - 在 C 中使用递归的斐波那契数列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53527749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com