在C语言中用递归计算m和n之间的斐波那契数列
时间: 2024-10-20 12:13:25 浏览: 25
C语言数据结构递归之斐波那契数列
5星 · 资源好评率100%
在C语言中,使用递归计算两个整数m和n之间的斐波那契数列可以这样实现:
```c
#include <stdio.h>
// 定义递归函数计算第n个斐波那契数
int fibonacci(int n) {
if (n <= 0) { // 如果n小于等于0,返回0(因为F(0)=0)
return 0;
} else if (n == 1 || n == 2) { // 如果n为1或2,直接返回1(因为F(1)=F(2)=1)
return 1;
} else { // 对于n大于2的情况,递归调用自身
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
// 主函数,计算并打印m到n之间的所有斐波那契数
void print_fibonacci(int m, int n) {
for (int i = m; i <= n; ++i) {
printf("%d ", fibonacci(i));
}
printf("\n");
}
int main() {
int m, n;
printf("请输入m和n的值: ");
scanf("%d %d", &m, &n);
print_fibonacci(m, n);
return 0;
}
```
这个程序首先定义了一个递归函数`fibonacci`,用于计算单个的斐波那契数。然后在`print_fibonacci`函数里,通过循环从m到n打印每个斐波那契数。需要注意的是,由于递归的性质,这种方法对于大的n值可能会导致效率低下。递归并非总是最佳解决方案,尤其是当涉及到大量重复计算的时候。
阅读全文