C语言如何通过递归实现斐波那契数列?
时间: 2024-10-28 17:15:05 浏览: 133
C语言数据结构递归之斐波那契数列
5星 · 资源好评率100%
在C语言中,通过递归可以简洁地表示斐波那契数列的概念,因为每个数都是前面两个数的和。下面是一个递归版本的斐波那契函数示例:
```c
#include <stdio.h>
// 递归函数定义
int fibonacci(int n) {
// 基本情况:当 n 等于 0 或 1 时,返回 n
if(n <= 1)
return n;
// 递归情况:对于更大的 n,返回前两个数的和
else
return fibonacci(n-1) + fibonacci(n-2);
}
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
// 输出斐波那契数列的第 num 项
printf("Fibonacci(%d) = %d\n", num, fibonacci(num));
return 0;
}
```
递归方法虽然简洁,但对于较大的n值,由于重复计算了很多已经计算过的数值,效率较低,可能会导致栈溢出。因此,递归不是处理大量斐波那契数的理想选择。
阅读全文