用c语言写一个斐波那契数列函数
时间: 2023-11-22 13:02:54 浏览: 111
好的,以下是用 C 语言编写的斐波那契数列函数:
```c
#include <stdio.h>
int fibonacci(int n) {
int a = 0, b = 1, i, temp;
if (n == 0) {
return a;
}
for (i = 2; i <= n; i++) {
temp = a + b;
a = b;
b = temp;
}
return b;
}
int main() {
int n = 10;
printf("斐波那契数列的第%d项为:%d\n", n, fibonacci(n));
return 0;
}
```
请注意,这是一个非递归的实现方式,因为递归方式的计算效率较低。
相关问题
用C语言递归函数写斐波那契数列
在C语言中,递归函数可以用来计算斐波那契数列,这是一个经典的数学序列,其中每个数字是前两个数字之和,通常初始的两个数字是0和1。下面是一个简单的递归函数实现:
```c
#include <stdio.h>
// 定义斐波那契数列的递归函数
int fibonacci(int n) {
if (n <= 1) { // 基本情况:当n小于等于1时,返回n
return n;
} else {
// 递归情况:n大于1时,返回前两个数的和
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int num; // 输入要查询的斐波那契数的位置
printf("请输入一个正整数:");
scanf("%d", &num);
if (num >= 0) {
printf("斐波那契数列的第%d项是:%d\n", num, fibonacci(num));
} else {
printf("输入错误,只能计算非负整数的斐波那契数。\n");
}
return 0;
}
```
在这个函数里,`fibonacci(n)`会不断地调用自身来计算较小的斐波那契数值,直到达到基本情况(n <= 1)。然而,需要注意的是,递归方法虽然直观,但效率不高,因为存在大量的重复计算。对于较大的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;
}
```
阅读全文
相关推荐













