c语言中fib(1) ,fib(2) ,fin(3)分别等于几呀?为什么??求详解

如题所述

fib(0)=0,fib(1)=1 ,fib(2)=1 ,fin(3)=2,Feibonacci通项公式fib(n)=fib(n-1)+fib(n-2),n>=2追问

请告诉我此题结果和详细过程
long fib(int n)
{if(n>2) return(fib(n-1)+fib(n-2));
else return(2);}
void main()
{printf("%d\n",fib(3));}

追答

此时,n=3,调用long fib(3)函数,符合(n>2),跳到第2行语句,继续调用long fib(2)+long fib(1),因为n分别等于2,1不符合(n>2),两次调用都返回2,long fib(2)+long fib(1)=2+2=4,最后将这一结果返回给最初调用的地方(即fib(3)),输出4.这个程序实现方法是调用中套调用,是递归的方法。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-26
fib(1) ,fib(2) ,fib(3)等于多少要看fib这个函数是如何定义的。 如果fib表示Feibonacci系列,则fib(1) =1,fib(2)=1 ,fib(3)=2。
第2个回答  2011-07-26
没看懂
第3个回答  2011-07-26
.....

...fib(2) ,fin(3)分别等于几呀?为什么??求详解
fib(0)=0,fib(1)=1 ,fib(2)=1 ,fin(3)=2,Feibonacci通项公式fib(n)=fib(n-1)+fib(n-2),n>=2

c语言fib是什么意思?
fib在c语言中为斐波那契数列,又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。从第二项开始,每个偶数项的平方都比前后两项之积多1,每个奇数项的平方都比前后两项之积少1。如:第二项 1 的平方比它的前一项 1 和它的后一项 ...

在C语言中,什么是迭代法?
我们不妨假设第 1 个月时兔子的只数为 u 1 ,第 2 个月时兔子的只数为 u 2 ,第 3 个月时兔子的只数为 u 3 ,……根据题意,“这种兔子从出生的下一个月开始,每月新生一只兔子”,则有u 1 = 1 , u 2 = u 1 + u 1 × 1 = 2 , u 3 = u 2 + u 2 × 1 = 4 ,……根据这个规律,...

c语言 来解释一下1h
fib(3)=fib(2)+fib(1),这时候,程序会先计算fib(2)和fib(1),而2和1都不大于2,所以fib(2)和fib(1)都返回2,所以结果为4。如果题目问的是fib(4),那么fib(4)=fib(3)+fib(2),程序要先计算fib(3)和fib(2),fib(3)又等于fib(2)+fib(1),算出来为4,fib(2)算出来为2,所以...

c 言中fib()到底是个什么函数?怎样使用?
fib他是写了一个函数--FIBONACCI函数 它是一个递归函数 不懂可以去百度上搜一下 这个你可以看懂吧?Fib(int n){ if(n<=2)return 1;else return Fib(n-1)+Fib(n-2);} 你取 n=4,则return Fib(3)+Fib(2) --> Fib(3)=Fib(2)+Fib(1) --> Fib(2)=1 Fib(1)=1 --> ...

用C语言求斐波那契数列前500项
用C语言求斐波那契数列的一种常见方法是使用递归函数,即定义一个函数fib(n),返回第n项的值,然后在函数体中调用fib(n-1)和fib(n-2)。这种方法虽然简单,但是效率很低,因为会重复计算很多次相同的值。例如,要计算fib(5),就要先计算fib(4)和fib(3),而计算fib(4)又要先计算fib(3)和fib(...

c语言,求这道题用递归函数的答案题目如图
Fib(0) = 1 [基本情况] Fib(1) = 1 [基本情况] 对所有n > 1的整数:Fib(n) = (Fib(n-1) + Fib(n-2)) [递归定义] 尽管有许多数学函数均可以递归表示,但在实际应用中,递归定义的高开销往往会让人望而却步。例如:阶乘(1) = 1 [基本情况] 对所有n > 1的整数:阶乘(n) = ...

C语言题,麻烦解答一下~O(∩_∩)O~
1.x=3,x-=2, 所以x=1,这--x 想x=0,!x = 1,所以再执行一次x-=2,打印x=-2,这时--x,!x为0 2.class是一个数组,Mary在下标为2的位置,M在name字段0下标的位置,所以选D 3.fib(5)=fib(4)+fib(3),fib(4)=fib(3)+fib(2),fib(3)=fib(2)+fib(1),fib(2)=fib(1)+...

c语言的题,谢谢了
答案是B fib(3) -> fib(2)+fib(1) -> 2+2

C语言编程:写出斐波那契数列的前40个数
include <stdio.h> int main(){ int f1 = 1;int f2 = 1;int f3,i;printf("%d\\t%d\\t",f1,f2);for(i = 1; i <= 38; i++){ f3 = f1 + f2;printf("%d\\t",f3);f1= f2;f2= f3;} printf("\\n");return 0;}

相似回答