C语言通这函数实现Fibonacci数列问题。
时间: 2024-12-29 19:32:47 浏览: 5
在C语言中,我们可以使用递归或循环的方式来实现Fibonacci数列。这里我会展示两种常见的方法:
**1. 递归实现:**
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1)
return n; // 基本情况
else
return fibonacci(n - 1) + fibonacci(n - 2); // 递归调用
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("斐波那契数列第 %d 项:", num);
printf("%d\n", fibonacci(num));
return 0;
}
```
**2. 循环实现:**
```c
#include <stdio.h>
void fibonacci(int n, int a, int b) {
if (n == 0)
return; // 基本情况,结束递归
printf("%d ", a); // 输出当前的斐波那契数
int temp = a;
a = b;
b = temp + b;
fibonacci(n - 1, a, b); // 递归调用,更新值
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("斐波那契数列前 %d 项:", num);
fibonacci(num, 0, 1); // 初始化前两个数
return 0;
}
```
这两种方法都可以生成Fibonacci数列,但递归可能会有性能问题,因为会有很多重复计算。
阅读全文