C语言中fun(n-1)+fun(n-2)是什么意思啊

作者&投稿:驷盆 (若有异议请与网页底部的电邮联系)
C语言 s=fun(n-1)+2 我想知道 这句是什么意思 如果n=3 s=fun(2)+2 这句表示了什么~

s = fun( n-2 ) + 2; 表示将函数fun的返回值 + 2赋给s。函数fun的形参是 n - 2。那这样n=3 s=fun(2)+2 即好理解了。具体s是多少要看函数是怎样实现的了(看函数体内容)

这个是自定义函数
int fun(int x,int y)
{
int m = 3;
return x*y-m;
}
这个函数表示的意思是使用fun函数就会得到x*y-m这个值,而x 对应主函数里面的a,y对应主函数里面的b。
所以结果为7*5 - 3 = 32,32/13 = 2;

理解这道题需要理解形式参数和实际参数(两者是对应关系),还需要理解全局变量与局部变量,int m = 13,这个是全局变量,在没有局部变量重新赋值的话,可以无需定义,直接使用。所以main函数里面可以直接使用m的值为13;但是fun函数里面的m是局部变量,只能在fun函数里面使用。
拓展资料返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。
函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
函数主体:函数主体包含一组定义函数执行任务的语句。

这是一个递归函数中的语句。
long fun(int n)
{
if(n==0||n==1)
return 1;
else
return fun(n-1)+fun(n-2);
}
这个递归函数,它是用来计算菲波那契数列第n项的。
前面的 if(n==0||n==1) return 1; 说的是递归结束的条件。就是说菲波那契数列的前二项的值就等于1,
从n>=3起,就使用递归的方法来计算fun(n)的值。
比如要计算fun(4),它就等于fun(3)+fun(2);
而fun(3)=fun(2)+fun(1);
fun(2)=fun(1)+fun(0)=1+1=2
所以,它调用fun(2)时就返回函数值2,调用fun(1)时直接返回函数值1,于是就计算出fun(3)的值为2+1=3。

一个递归的函数,
当n<=2时,fun(n)=4
当n>2时,fun(n)=fun(n-1)+fun(n-2)

也就是说
fun(1)=4,
fun(2)=4,
fun(3)=fun(2)+fun(1)=8
fun(4)=fun(3)+fun(2)=12
fun(5)=fun(4)+fun(3)=20

fun是函数吧。就是n-1代入到函数得到的值加上n-2代入到函数得到的值

fun应该是自己定义的一个函数,实现的是一个计算功能,返回计算后的结果吧,上代码嘛,直观点!

递归!!你把1,2,3代入N自己算一边就知道了


C语言中fun(n-1)+fun(n-2)是什么意思啊
从n>=3起,就使用递归的方法来计算fun(n)的值。比如要计算fun(4),它就等于fun(3)+fun(2);而fun(3)=fun(2)+fun(1);fun(2)=fun(1)+fun(0)=1+1=2 所以,它调用fun(2)时就返回函数值2,调用fun(1)时直接返回函数值1,于是就计算出fun(3)的值为2+1=3。

C语言 s=fun(n-1)+2 我想知道 这句是什么意思 如果n=3 s=fun(2)+2...
s = fun( n-2 ) + 2; 表示将函数fun的返回值 + 2赋给s。函数fun的形参是 n - 2。那这样n=3 s=fun(2)+2 即好理解了。具体s是多少要看函数是怎样实现的了(看函数体内容)

C语言,想问一下第六刚fun(n-1,&f1)中的&f1是什么意思
这是递归用法,第六行调用函数本身,也就是调用fun(int n,int *s)把n-1传递给调用的函数的n;把&f1传递给调用函数的s;本处,&f1是取变量f1的地址,含义是把f1的地址传递给指针变量s。这样函数操作结束后就可以直接修改分f1变量的数据。

c语言x*fun(n-1,x)什么意思
x*fun(n-1,x)x是变量名 是乘法的运算符 fun是函数它有两个参数 变量n-1和x

C语言中,这条语句是什么意思?
n=6,地址是x,然后调用fun方法,此时n既不等于1也不等于2 所以执行else中的代码 此时fun(n-1,&f1)中n-1=6-1=5,地址是f1,调用fun方法,将5传给void fun(int n,int *s)中的n,把f1传给*s。此时 fun(n-1,&f1)语句执行完。执行fun(n-1,&f2),因为上一次n已经变成5,此时fun(n-1,...

C语言中的fun函数问题,求解
只是函数的递归调用,就是调用函数fun(8),当实参为8的时候,传给形参n,判断n<0,不小于0,执行fun(8-2)得fun(6),继续调用,如此一直调用到n<0为止。

C语言用FUN这个MAIN函数有F
进入fun函数。如果n==1或n==2, 那么参数*s为1 否则 调用fun(n-1, &f1)和fun(n-2,&f2)并将f1和f2相加,于是会依次调用 fun(5) fun(4) fun(3) fun(2) fun(1)对于每个*s n=1 和n=2时, *s=1 n=3时 *s=1+1=2 n=4时 *s=2+1=3 n=5时, *s=3+2=5 n=6...

关于c语言的一道题,求c高手帮忙解答~谢谢啦
1,1,2,3,5,8,13,21,……算法:第1第2两项是1,以后每一项是前两项之和。fun(int n, int* s)就是计算斐波那契数列第n项的值保存在地址为s的变量中。所以fun(6,&x)是计算第6项的值(也就是8)保存在x中。而fun(n-1,&f1)是计算第n-1项的值保存在f1中,fun(n-2,&f2)...

C语言中返回值问题
fun(int n)\/\/此时n=3 { long s;if(n==1||n==2)s=2; \/\/条件还不成立会执行else else s=n-fun(n-1); 这个时候还会再次调用本函数 return s;} 这时会第三次进入 fun(int n)\/\/此时n=2 { long s;if(n==1||n==2)s=2; \/\/条件成立 else s=n-fun(n-1);return s;\/\/...

c语言之fun()函数
就是当n==0,n==1时,f1=f2=1。 if(n==0||n==1) *s=1;这个就相当于初始化了。然后就简单了,当n==2时,*s=f1+f2=1+1=2;当n==3时*s=2+1=3;当n==4时*s=3+2=5;当n==5时*s=5+3=8;当n==6时*s=8+5=13 结果就是13 这个是递归算法。望采纳!

叠彩区18894048745: C语言中fun(n - 1)+fun(n - 2)是什么意思啊 -
鲜咽东药: 这是一个递归函数中的语句. long fun(int n) {if(n==0||n==1)return 1; elsereturn fun(n-1)+fun(n-2); } 这个递归函数,它是用来计算菲波那契数列第n项的. 前面的 if(n==0||n==1) return 1; 说的是递归结束的条件.就是说菲波那契数列的前二项...

叠彩区18894048745: c语言求前n项和2/1+3/2+5/3..... -
鲜咽东药: #include"stdio.h" const int N=5; int fun(int n) { if(n==1||n==0)return 1; else return fun(n-1)+fun(n-2); } double Add(int n) { if(n==1)return 1.0; else return Add(n-1)+1.0*fun(n-1)/fun(n); } void main() { printf("%lf\n",Add(N)+N); }

叠彩区18894048745: C语言fun函数的功能是:求出以下分数序列的前n项之和.(用递归) -
鲜咽东药: 不用那么麻烦 int a=1,b=2,i,k,n; float sum=0.0; scanf("%d",&n); for(i=0;i{ sum+=1.0*a/b; k=a; a+=b; b=k; }

叠彩区18894048745: c语言问题 -
鲜咽东药: 这个程序函数fun(n)的意思是求斐波那契数列第n项的值,数列递归定义从函数fun的定义可以看出来是:fun(0)=0; fun(1)=fun(2)=1; fun(n)=fun(n-1)+fun(n-2) (n>2) 那么 fun(3)=fun(2)+fun(1)=2 fun(4)=fun(3)+fun(2)=3 fun(5)=fun(4)+fun(3)=5 fun(6)=fun(5)+fun(4)=8 fun(7)=fun(6)+fun(5)=13 main函数里代入的就是7,所以输出13 有疑问可以HI我

叠彩区18894048745: c语言程序 -
鲜咽东药: p是指针,不是double型变量,占用的内存不是8字节.这一题fun(n)包含递归调用,fun(n)除了n=0,1,2外,fun(n)=fun(n-1)+fun(n-2),即fun(0)=0fun(1)=1fun(2)=1fun(3)=fun(2)+fun(1)=2fun(4)=fun(3)+fun(2)=3f...

叠彩区18894048745: C语言 s=fun(n - 1)+2 我想知道 这句是什么意思 如果n=3 s=fun(2)+2 这句表示了什么 -
鲜咽东药: s = fun( n-2 ) + 2; 表示将函数fun的返回值 + 2赋给s.函数fun的形参是 n - 2.那这样n=3 s=fun(2)+2 即好理解了.具体s是多少要看函数是怎样实现的了(看函数体内容)

叠彩区18894048745: c语言~~~~~~~~~~~~键盘输入正整数n,计算并输出 (下面的图片) 的值,输出结果保留6位小数. -
鲜咽东药: #include<stdio.h>int main() {int n,i;double sum=0;printf("请输入n = ");scanf("%d",&n);for(i=1;i<=n;i++){if(i%2) sum+=(double)1/i;else sum-=(double)1/i;}printf("结果为:%0.6lf\n",sum);system("pause");return 0; }

叠彩区18894048745: c语言例题
鲜咽东药: 给你发个二级的上机题目吧!!以后要的话,留言吧!!! 请在函数fun的横线上填上若干表达式,使从键盘上输入一个整数n,输出斐波那契数列.此数列是一个整数数列,其中每数等于前两数之和,如:0 1 1 2 3 5 8 13.请勿改动主函数main...

叠彩区18894048745: 输出两数间的斐波那契数列 -
鲜咽东药: 用C语言写的,程序如下:#include<stdio.h> int fun(int n) { if((n==1)||(n==0)) { return 0; } else { if(n==2) { return 1; } else { return fun(n-1)+fun(n-2); } } } main() { int a,b; int i=0; clrscr(); printf("Plase input two numbers:\n"); scanf("%d",&a); scanf("...

叠彩区18894048745: 一个简单的C语言题.用递归实现n!+(n - 1)!+(n - 2)!+...+2!+1! -
鲜咽东药: int fun(int n) { int N=1;for(int i =1 ;i<=n;i++) { N=N*i; } //求n!的值 return fun(n-1)+N;//递归调用 }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网