给出斐波拉契函数,用C语言编写代码
时间: 2025-04-29 14:49:58 浏览: 22
### C语言实现斐波那契函数
#### 使用递归方式实现斐波那契数列
下面是一个使用递归来计算斐波那契数列指定位置数值的例子:
```c
#include <stdio.h>
// 定义一个返回第n个斐波那契数的函数
int fib(int n){
if (n <= 1) {
return n;
}
else {
return fib(n - 1) + fib(n - 2);
}
}
int main(){
int num = 0;
printf("请输入要查询的位置:");
scanf("%d", &num);
// 调用fib()函数求解对应位置上的值
int result = fib(num);
printf("Fibonacci(%d)=%d\n", num, result);
return 0;
}
```
这段代码定义了一个名为`fib()`的函数用于接收参数n并返回该索引处对应的斐波那契数值。当输入小于等于1时直接返回;否则调用自身两次分别传入较小两个连续自然数直到满足终止条件为止[^5]。
#### 非递归(迭代)版本的斐波那契序列生成器
对于性能考虑,这里也给出一种基于循环结构而非递归的方式来构建相同功能的应用程序:
```c
#include <stdio.h>
void fibonacci_series(int count){
long long a = 0 , b = 1;
for (int i = 0; i < count ; ++i){
printf("%lld ",a);
// 更新下一个数字
long long nextTerm = a+b;
a=b;
b=nextTerm;
}
puts("");
}
int main(){
int termsCount;
printf("你想打印多少项? ");
scanf("%d",&termsCount);
fibonacci_series(termsCount);
return 0;
}
```
此段源码采用非递归的方式实现了同样的逻辑,它通过设置初始变量a,b分别为第一个和第二个元素,之后每一轮都将当前两者的和作为新的b值,并把旧的b赋给a从而完成更新操作。这种方法避免了大量的重复运算,因此执行速度更快且占用资源更少[^1]。
阅读全文
相关推荐



















