c语言用递归函数实现输出1,1,2,3,5,8,13,21.......的前20项
时间: 2024-04-14 19:29:12 浏览: 13
您可以使用递归函数来实现输出斐波那契数列的前20项。下面是一个使用C语言编写的示例代码:
```c
#include <stdio.h>
// 自定义函数,计算斐波那契数列的第n项
int fibonacci(int n) {
// 基本情况,前两项为1
if (n == 1 || n == 2) {
return 1;
}
// 递归调用,计算前两项的和作为第n项
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int n = 20;
printf("斐波那契数列的前%d项为:\n", n);
for (int i = 1; i <= n; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
在这个示例中,我们定义了一个名为`fibonacci`的自定义函数,它以整数`n`作为参数,并返回斐波那契数列的第`n`项。在函数内部,我们使用了递归来计算斐波那契数列。在`main`函数中,我们设定了`n`的值为20,并通过循环调用自定义函数来输出斐波那契数列的前20项。
输出结果将会是:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765。
相关问题
C语言用递归实现1+2+3+...+n的和
以下是C语言用递归实现1+2+3+...+n的和的代码和解释:
```c
#include <stdio.h>
#include <stdlib.h>
int fun(int m); // 声明递归函数
int main(){
int n,sum=0;
printf("Please enter a number:");
scanf("%d",&n);
if(n<=0){
printf("Enter error");
exit(0);
}
sum=fun(n); // 调用递归函数
printf("sum=%d\n",sum);
return 0;
}
int fun(int m){
if(m==1){ // 递归结束条件
return 1;
}
return m+fun(m-1); // 递归调用
}
```
解释:
1.首先在主函数中输入一个正整数n,如果n小于等于0,则输出“Enter error”并退出程序。
2.然后调用递归函数fun(n),将返回值赋给变量sum。
3.在递归函数fun(m)中,如果m等于1,则返回1,递归结束。
4.否则,返回m+fun(m-1),即m加上m-1到1的和,继续递归调用fun(m-1)。
5.最终,fun(n)返回的值就是1+2+3+...+n的和,赋给sum并输出。
c语言,递归函数实现,求s=1+2+3+... +100
可以使用递归函数来实现,每一次递归都将当前的数值加上之前所有的数值,直到达到100为止。代码如下:
```c
#include <stdio.h>
int sum(int n) {
if(n == 1) {
return 1;
} else {
return n + sum(n-1);
}
}
int main() {
int s = sum(100);
printf("s = %d\n", s);
return 0;
}
```
输出结果为:
```
s = 5050
```
其中,`sum`函数是递归实现的求和函数,`main`函数中调用`sum`函数来计算1到100的和,并输出结果。