用c递归求斐波那契数列
时间: 2024-01-16 17:17:37 浏览: 95
以下是使用C语言递归求解斐波那契数列的示例代码:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int n;
printf("请输入你要打印的斐波那契数列项数:\n");
scanf("%d", &n);
printf("斐波那契数列:");
for (int i = 0; i < n; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
这段代码中,我们定义了一个名为`fibonacci`的函数,该函数使用递归的方式计算斐波那契数列的第n项。在`main`函数中,我们首先获取用户输入的项数n,然后使用循环打印出斐波那契数列的前n项。
相关问题
用非递归的函数调用形式求斐波那契数列第n项
可以使用循环来实现非递归的函数调用形式求斐波那契数列第n项。
具体实现方法如下:
1. 定义两个变量a和b,分别表示斐波那契数列的前两项。
2. 判断n的值,如果n小于等于1,则直接返回n。
3. 如果n大于1,则使用循环计算斐波那契数列的第n项,每次循环将a和b的值更新为下一项的值。
4. 循环结束后,返回b的值即可。
代码如下:
```
def fibonacci(n):
if n <= 1:
return n
else:
a, b = , 1
for i in range(2, n+1):
a, b = b, a+b
return b
```
例如,调用fibonacci(6)会返回8,因为斐波那契数列的第6项是8。
编写递归函数Fibonacci,输出Fibonacci数列的前20项。Fibonacci数列的计算方法是:
Fibonacci数列是指从0,1开始,后一项是前两项之和,即:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181...
可以使用递归函数来实现,代码如下:
```python
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
# 输出前20项
for i in range(20):
print(fibonacci(i))
```
输出结果:
```
0
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
```
阅读全文