使用递归调用输出斐波那契数列的前20个数。递归函数fib(int k),用c语言
时间: 2024-02-03 19:14:30 浏览: 34
可以使用以下代码来实现斐波那契数列的递归输出:
```c
#include <stdio.h>
int fib(int k) {
if (k == 0 || k == 1) {
return k;
} else {
return fib(k-1) + fib(k-2);
}
}
int main() {
printf("斐波那契数列的前20个数为:\n");
for (int i = 0; i < 20; i++) {
printf("%d ", fib(i));
}
printf("\n");
return 0;
}
```
在这个程序中,`fib`函数使用递归调用的方式来计算斐波那契数列中第k个数的值。当k等于0或1时,直接返回k,否则返回前两个数的和。在`main`函数中,我们循环输出前20个斐波那契数列的值。
相关问题
用C语言编写一个递归函数,输出斐波那契数列前n项和
以下是用C语言编写的递归函数,输出斐波那契数列前n项和的代码:
```c
#include<stdio.h>
int fib(int n) {
if(n == 1 || n == 2) {
return 1;
} else {
return fib(n-1) + fib(n-2);
}
}
int sumFib(int n) {
int sum = 0;
for(int i=1; i<=n; i++) {
sum += fib(i);
}
return sum;
}
int main() {
int n;
printf("请输入要输出的斐波那契数列的项数:");
scanf("%d", &n);
printf("前%d项斐波那契数列的和为:%d\n", n, sumFib(n));
return 0;
}
```
在上述代码中,`fib(n)` 函数用于计算斐波那契数列的第 n 项,`sumFib(n)` 函数用于计算前 n 项斐波那契数列的和。在 `main()` 函数中,首先输入要输出的项数 n,然后调用 `sumFib(n)` 函数计算前 n 项斐波那契数列的和,并输出结果。
用C语言函数的递归调用写斐波那契数列
请看以下代码:
```c
#include <stdio.h>
int fib(int n) {
if (n <= 1) {
return n;
}
return fib(n-1) + fib(n-2);
}
int main() {
int n = 10;
printf("斐波那契数列前%d项为:\n", n);
for (int i = 0; i < n; i++) {
printf("%d ", fib(i));
}
printf("\n");
return 0;
}
```
代码中的 `fib` 函数可以通过递归来实现,根据斐波那契数列的定义,第n项的值等于第n-1项和第n-2项的值之和,因此递归求解 `fib(n)` 可以分解为递归求解 `fib(n-1)` 和 `fib(n-2)`,直到终止条件 `n <= 1` 成立,将返回值相加。主函数中给定任意正整数n,输出斐波那契数列的前n项。