C语言中斐波那契数列
时间: 2023-12-04 16:40:45 浏览: 39
以下是三种C语言实现斐波那契数列的方法:
1. 递归方法:
```c
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n-1) + fibonacci(n-2);
}
```
2. 非递归方法:
```c
int fibonacci(int n) {
int a = 0, b = 1, c, i;
if (n == 0) {
return a;
}
for (i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
```
3. 数组方法:
```c
int fibonacci(int n) {
int f[n+2];
int i;
f[0] = 0;
f[1] = 1;
for (i = 2; i <= n; i++) {
f[i] = f[i-1] + f[i-2];
}
return f[n];
}
```
相关问题
c语言算法斐波那契数列
斐波那契数列是一个常见的数列,其定义是从第三项开始,每一项都等于前两项之和。斐波那契数列的前几项依次是0, 1, 1, 2, 3, 5, 8, 13, 21, 34...
在C语言中,我们可以使用循环的方法来实现斐波那契数列。首先,我们需要先开辟一个数组来存储斐波那契数列的值。然后,我们给数组的前两位赋初值为0和1,接下来通过循环计算出剩余的斐波那契数列的值。最后,我们可以通过循环输出数组中的值来得到完整的斐波那契数列。以下是用C语言实现斐波那契数列的代码示例:
```c
#include <stdio.h>
int main() {
int array = 0; // 数组赋初值
array = 1;
arrysize = sizeof(array) / sizeof(array = array[i - 1 + array[i - 2];
}
for(i = 0; i < arrysize; i++) { // 循环输出斐波那契数列
printf("%d ", array[i]);
}
return 0;
}
```
从上述代码可以看出,我们使用了循环来计算并输出斐波那契数列的值。通过循环,我们可以避免递归算法中产生的多余计算,提高了效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C语言求Fibonacci斐波那契数列通项问题的解法总结](https://download.csdn.net/download/weixin_38631049/12796835)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [C语言输出斐波那契数列](https://blog.csdn.net/cocoszz/article/details/129629596)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [【C语言】斐波那契数列](https://blog.csdn.net/qq_49663134/article/details/126128836)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
C语言输出斐波那契数列
以下是两种C语言输出斐波那契数列的例子:
1. 使用公式计算斐波那契数列的值
```c
#include <stdio.h>
#include <math.h>
double fibonacci(int n) {
double phi = (1 + sqrt(5)) / 2;
return (pow(phi, n) - pow(-phi, -n)) / sqrt(5);
}
int main() {
int n;
printf("请输入要计算的斐波那契数列项数:");
scanf("%d", &n);
printf("第%d项斐波那契数列值为:%lf", n, fibonacci(n));
return 0;
}
```
2. 使用数组计算斐波那契数列的值
```c
#include <stdio.h>
void fib(int n) {
int a[n];
a[0] = 0;
a[1] = 1;
for (int i = 2; i < n; i++) {
a[i] = a[i - 1] + a[i - 2];
}
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
}
int main() {
int n;
printf("请输入斐波那契数列的长度: ");
scanf("%d", &n);
fib(n);
return 0;
}
```