写一个斐波拉契函数,用C语言
时间: 2023-09-19 08:05:06 浏览: 109
### 回答1:
int fibonacci(int n)
{
if (n <= 1)
return n;
return fibonacci(n-1) + fibonacci(n-2);
}
### 回答2:
斐波那契函数是一种经典的递归函数,它产生的数列称为斐波那契数列。在C语言中,我们可以使用递归或迭代的方式来实现斐波那契函数。
方法一:递归实现
递归是通过调用自身的方式来解决问题。以下是使用递归实现斐波那契函数的C代码:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1)
return n;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int n = 10; // 想要获取斐波那契数列的前n项
printf("斐波那契数列的前%d项为:\n", n);
for (int i = 0; i < n; ++i) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
该程序输出斐波那契数列的前n项。在该代码中,递归函数`fibonacci`接收一个整数n作为参数,返回斐波那契数列的第n项。
方法二:迭代实现
迭代是通过循环的方式来解决问题。以下是使用迭代实现斐波那契函数的C代码:
```c
#include <stdio.h>
int fibonacci(int n) {
int first = 0, second = 1, result;
if (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; // 想要获取斐波那契数列的前n项
printf("斐波那契数列的前%d项为:\n", n);
for (int i = 0; i < n; ++i) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
该程序的逻辑与递归实现相似,但使用循环替代了递归调用,以提高效率。同样地,该代码也输出斐波那契数列的前n项。
无论是递归还是迭代,以上C代码都可以实现斐波那契函数。
### 回答3:
斐波拉契函数是一种数列,其中每个数都是前两个数的和,通常以0和1作为数列的起始值。要用C语言编写斐波拉契函数,可以采用递归或迭代的方法。
递归方法如下所示:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1)
return n;
return fibonacci(n-1) + fibonacci(n-2);
}
int main() {
int num, i;
printf("请输入要输出的斐波拉契数列的个数:");
scanf("%d", &num);
printf("斐波拉契数列前 %d 项为:\n", num);
for (i = 0; i < num; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
上述代码中,`fibonacci`函数使用了递归的方式计算斐波拉契数列的每一项。在`main`函数中,用户输入要输出的斐波拉契数列的个数,并通过循环调用`fibonacci`函数来打印出相应数量的斐波拉契数。
另外,我们还可以使用迭代的方式编写斐波拉契函数,如下所示:
```c
#include <stdio.h>
int fibonacci(int n) {
int a = 0, b = 1, c, i;
if (n <= 1)
return n;
for (i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
int main() {
int num, i;
printf("请输入要输出的斐波拉契数列的个数:");
scanf("%d", &num);
printf("斐波拉契数列前 %d 项为:\n", num);
for (i = 0; i < num; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
这段代码中,`fibonacci`函数通过迭代的方式计算斐波拉契数列的每一项。在`main`函数中,用户输入要输出的斐波拉契数列的个数,并通过循环调用`fibonacci`函数来打印出相应数量的斐波拉契数。
无论采用递归还是迭代的方式,以上两种方法都可以用C语言编写斐波拉契函数。
阅读全文