C语言:用递归算法求斐波那契
时间: 2023-11-27 14:54:01 浏览: 42
斐波那契数列是指:1、1、2、3、5、8、13、21、34、……,即第n个数等于其前两个数之和。
递归算法可以很方便地解决这个问题:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n;
printf("请输入要求的斐波那契数列的项数:");
scanf("%d", &n);
printf("斐波那契数列的前%d项为:", n);
for (int i = 1; i <= n; i++) {
printf("%d ", fibonacci(i));
}
printf("\n");
return 0;
}
```
在这个程序中,`fibonacci`函数使用递归算法来计算斐波那契数列,如果n为1或2,则返回1,否则返回前两项的和。主函数中,先读入要求的项数n,然后使用循环依次输出前n项的值。
相关问题
c语言:用递归算法求斐波那契
斐波那契数列是指:1、1、2、3、5、8、13、21、34、……,即第n个数等于其前两个数之和。
递归算法可以很方便地解决这个问题:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n;
printf("请输入要求的斐波那契数列的项数:");
scanf("%d", &n);
printf("斐波那契数列的前%d项为:", n);
for (int i = 1; i <= n; i++) {
printf("%d ", fibonacci(i));
}
printf("\n");
return 0;
}
```
在这个程序中,`fibonacci`函数使用递归算法来计算斐波那契数列,如果n为1或2,则返回1,否则返回前两项的和。主函数中,先读入要求的项数n,然后使用循环依次输出前n项的值。
用C语言编写:用递归算法处理Fibonacci数列问题,计算输出ibonacci数列的第n项
以下是用递归算法处理Fibonacci数列问题的C语言代码,可以计算输出Fibonacci数列的第n项:
```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("请输入要计算的Fibonacci数列的项数n:");
scanf("%d", &n);
printf("Fibonacci数列的第%d项为:%d", n, fibonacci(n));
return 0;
}
```
在上述代码中,`fibonacci` 函数是一个递归函数,用于计算Fibonacci数列的第n项。当n为0或1时,直接返回对应的值;否则,递归地调用 `fibonacci` 函数计算第n-1项和第n-2项的值,然后将它们相加得到第n项的值。
在 `main` 函数中,首先提示用户输入要计算的Fibonacci数列的项数n,然后使用 `scanf` 函数读取用户输入的值。接着调用 `fibonacci` 函数计算第n项的值,并使用 `printf` 函数输出结果。