C语言用函数实现斐波那契数列
时间: 2023-05-17 14:02:57 浏览: 71
可以使用递归或循环来实现斐波那契数列。以下是使用递归的实现方式:
```
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n-1) + fibonacci(n-2);
}
```
以下是使用循环的实现方式:
```
int fibonacci(int n) {
if (n <= 1) {
return n;
}
int a = 0, b = 1;
for (int i = 2; i <= n; i++) {
int c = a + b;
a = b;
b = c;
}
return b;
}
```
相关问题
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),因为每次调用都会调用两次自身,所以效率较低。
c语言用函数写斐波那契数列
以下是两种用C语言函数实现斐波那契数列的例子:
1. 递归实现斐波那契数列
```c
#include <stdio.h>
#include <stdlib.h>
double function(double m) {
if(m == 1) {
return 1;
} else if (m == 2) {
return 1;
} else if(m >= 3) {
return function(m - 1) + function(m - 2);
}
}
int main() {
double m , y;
printf("请输入第几行斐波那契数列:");
scanf("%lf",&m);
y = function(m);
printf("这个斐波那契数列为:%lf",y);
return 0;
}
```
2. 迭代实现斐波那契数列
```c
#include<stdio.h>
int fun(int x) {
if(x==1 || x==2)
return 1;
else if(x==0)
return 0;
x = fun(x-1) + fun(x-2);
return x;
}
int main() {
int n;
scanf("%d",&n);
printf("%d",fun(n));
return 0;
}
```