C语言,使用递归实现斐波那契数列
时间: 2023-11-25 10:23:13 浏览: 36
#include <stdio.h>
int fibonacci(int n){
if(n == 0 || n == 1){
return n;
}
else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main(){
int n, i;
printf("Enter the number of terms: ");
scanf("%d", &n);
printf("Fibonacci Series: ");
for(i=0; i<n; i++){
printf("%d ", fibonacci(i));
}
return 0;
}
相关问题
c语言非递归实现斐波那契数列
斐波那契数列是指从第三项开始,每一项都等于前两项之和。要使用C语言非递归方式实现斐波那契数列,可以使用循环结构来计算每一项的值。
具体实现代码如下:
```c
#include <stdio.h>
int fibonacci(int n) {
int first = 0, second = 1, result = 0;
if (n == 0 || n == 1) {
return n;
}
for (int i = 2; i <= n; i++) {
result = first + second;
first = second;
second = result;
}
return result;
}
int main() {
int n = 10;
//假设要计算斐波那契数列的第10项
int fib = fibonacci(n);
printf("斐波那契数列第%d项为:%d\n", n, fib);
return 0;
}
```
以上代码中,我们使用了三个变量来记录计算过程中的中间值:`first`,`second`和`result`。首先判断输入的项数是否是前两项,如果是,则直接返回对应的值。接下来使用循环来计算第`n`项的值,每次迭代都将`result`赋值为前两项的和,并将`first`和`second`更新为当前项的值,最后返回`result`即为第`n`项的结果。
以上就是使用C语言非递归方式实现斐波那契数列的方法。
C语言递归函数实现斐波那契数列
C语言递归函数实现斐波那契数列的方法是通过递归调用函数来实现。具体实现方法如下:
int Fibonacci(int x) {
if (x == 0 || x == 1) { //当x=0或x=1时,返回x
return x;
} else {
return Fibonacci(x-1) + Fibonacci(x-2); //递归调用函数,返回f(x)=f(x-1)+f(x-2)
}
}
在这个函数中,当输入的x为0或1时,直接返回x。否则,递归调用Fibonacci函数,返回f(x)=f(x-1)+f(x-2)的值。这个函数的时间复杂度为O(2^n),因为每次调用都会调用两次自身,所以效率较低。