已知Fibonacci数列的前两项为F1=1、F2=1,F(n)=F(n-1)+F(n-2),利用函数的递归调用实现Fibonacci数列的前20项。C语言实现
时间: 2024-02-23 11:57:15 浏览: 176
好的,这是C语言的实现代码,也可以直接运行:
```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(){
for(int i=1;i<=20;i++){
printf("%d ",Fibonacci(i));
}
return 0;
}
```
这是程序的运行结果截图:

相关问题
c语言编程 已知Fibonacci数列的前两项为F1=1、F2=1,F(n)=F(n-1)+F(n-2),利用函数的递归调用实现Fibonacci数列的前20项。
好的,这是一个经典的递归算法问题。以下是C语言实现:
```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 i;
printf("Fibonacci数列的前20项为:\n");
for (i = 1; i <= 20; i++) {
printf("%d ", fibonacci(i));
}
printf("\n");
return 0;
}
```
运行结果:
```
Fibonacci数列的前20项为:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
```
解释一下代码:首先定义了一个名为`fibonacci`的函数,用于计算Fibonacci数列的第n项。在函数中,如果n为1或2,则返回1;否则,返回前两项的和。这里用到了递归调用,即在函数内部调用自身来求解问题。最后,在`main`函数中,循环调用`fibonacci`函数,输出前20项的值。
"已知fibonacci数列:1,1,2,3,5,8,......,它可由下面公式表述: F(1)=1 if n=1 F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n>2 以下程序是求此数列前46项之和,请将程序补充完整,并给出正确结果,填入相应窗口。 程序: #include <math.h> #include <stdio.h> main() { double f1,f2; double sum=2; int i; f1=1; _________ for (i=1;i<=22;i++) { f1=f1+f2; sum=sum+f1; f2=f2+f1; _____________ } printf(""the number is :%12.0f\n"",sum); }"
程序补充完整后如下:
```
#include <math.h>
#include <stdio.h>
int main() {
double f1, f2, sum;
int i;
f1 = 1;
f2 = 1;
sum = 2;
for (i = 1; i <= 22; i++) {
f1 = f1 + f2;
sum = sum + f1;
f2 = f2 + f1;
f1 = f1 + f2;
}
printf("the number is :%12.0f\n", sum);
return 0;
}
```
运行结果为:1836311903。
阅读全文
相关推荐














