实现Fibonacci数列;
时间: 2024-10-01 18:09:42 浏览: 18
Fibonacci数列是一个经典的数列,每个数字都是前两个数字之和。数列的前几项通常是0、1、1、2、3、5、8...以此类推。在C语言中,我们可以用循环或递归的方式来生成Fibonacci数列。下面是两种常见的实现方式:
### 循环法(迭代法)
```c
#include <stdio.h>
// 使用循环实现Fibonacci数列
unsigned long long fibonacci(int n) {
if (n <= 0) return 0;
if (n == 1) return 1;
unsigned long long fib[n+1];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i <= n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
return fib[n];
}
int main() {
int n;
printf("请输入一个正整数n: ");
scanf("%d", &n);
printf("Fibonacci数列的第%d项是:%llu\n", n, fibonacci(n));
return 0;
}
```
### 递归法(虽然效率较低,但更直观)
```c
#include <stdio.h>
// 使用递归实现Fibonacci数列(效率较低,不适合大数)
unsigned long long fibonacci_recursive(int n) {
if (n <= 1) return n;
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2);
}
int main() {
int n;
printf("请输入一个正整数n: ");
scanf("%d", &n);
printf("Fibonacci数列的第%d项是:%llu\n", n, fibonacci_recursive(n));
return 0;
}
```
请注意,递归法对于较大的n可能会有性能问题,因为会有很多重复的计算。循环法则更为高效。