c语言用递归的方法求出输出第n到第m个数的斐波那契数
时间: 2023-11-22 07:54:40 浏览: 37
以下是用递归方法求出输出第n到第m个数的斐波那契数的C语言代码:
```c
#include <stdio.h>
int fibonacci(int n);
int main()
{
int n, m, i;
printf("Enter the values of n and m: ");
scanf("%d %d", &n, &m);
printf("Fibonacci series from %d to %d:\n", n, m);
for (i = n; i <= m; i++)
{
printf("%d ", fibonacci(i));
}
return 0;
}
int fibonacci(int n)
{
if (n == 0 || n == 1)
{
return n;
}
else
{
return fibonacci(n-1) + fibonacci(n-2);
}
}
```
在上面的代码中,`fibonacci()` 函数用来计算第n个斐波那契数。递归地调用 `fibonacci()` 函数,直到n为0或1,然后返回n。在 `main()` 函数中,我们输入n和m的值,并在循环中调用 `fibonacci()` 函数以打印出第n到第m个斐波那契数。
相关问题
在c语言中用递归算法求第n个斐波那契数
可以使用递归算法来计算斐波那契数列。以下是 C 语言中使用递归算法求解第 n 个斐波那契数的代码:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1)
return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int n;
printf("Enter the number of terms: ");
scanf("%d", &n);
printf("Fibonacci Series: ");
for (int i = 0; i < n; ++i) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
在上面的代码中,我们定义了一个名为 fibonacci 的递归函数,该函数使用 n 作为参数。如果 n 小于等于 1,则函数返回 n。否则,函数将调用自身来计算前两个斐波那契数,然后将它们相加来获取当前的斐波那契数。最后,我们在主函数中使用循环来打印前 n 个斐波那契数。
需要注意的是,递归算法的效率较低,因为它会重复计算许多相同的值。对于大数值的斐波那契数列,递归算法可能会导致计算时间非常长,并且可能会耗尽计算机的内存。因此,当需要计算大数值的斐波那契数列时,最好使用迭代算法。
使用c语言非递归输出斐波那契数列编程计算第n个数
```
#include <stdio.h>
int fibonacci(int n) {
int a = 0, b = 1;
if (n == 0) {
return a;
} else if (n == 1) {
return b;
} else {
int c;
for (int i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("斐波那契数列中第%d个数是%d\n", n, fibonacci(n));
return 0;
}
```
该程序使用非递归方法计算斐波那契数列。在循环中,每个数字都是前两个数字的和,直到计算到第n个数。最后返回第n个数。