输出下面程序的结果:
#include<stdio.n>
long fun(int n)
{long s;
if(n==1||n==2)
s=2;
s=n+fun(n-1);
return s;}
vois mian()
{printf("n%ld",fun(4));}
请教了。
是什么意思,再其中在起到什么做用。s=n+fun(n-1);是怎么样计算的。
if(n==1||n==2)是n等于1或等于2的意思。
我觉得你的s=n+fun(n-1);前面少了个else
当有else的时候。这就是个第归函数当N==1||N==2时返回2,
其他情况返回s=n+fun(n-1);,举个例子吧,fun(3)里的S=3+fun(2)=3+2,对于fun(4)里的S=4+fun(3)=4+3+fun(2)=4+3+2
这是个典型的第归,用来实现2+3+4+……+N
return s;
永远执行不到!
s=n+fun(n-1);=====》if (n>2)s=n+fun(n-1);
如果是1+1+2+3+5+8+...+n+(n-1)那么
s=1;