#includelong fun(int n){if(n>1)return (n*fun(n-1));return 1;
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/01 12:10:24
#include
long fun(int n)
{
if(n>1)
return (n*fun(n-1));
return 1;
}
main()
{
printf("10!=%1d\n",fun(10));
}
这里的return
能纤细的说下么.
如果求的是10!
n>1,什么时候结束叠乘?
如果按一楼,是不是就是相当于else return
long fun(int n)
{
if(n>1)
return (n*fun(n-1));
return 1;
}
main()
{
printf("10!=%1d\n",fun(10));
}
这里的return
能纤细的说下么.
如果求的是10!
n>1,什么时候结束叠乘?
如果按一楼,是不是就是相当于else return
if(n>1)
return (n*fun(n-1));
是一个 if 语句.很明显,如果 n 大于 1,则 执行 return (n*fun(n-1)); 否则就执行下面的语句.
因为 main 函数里调用的是 fun(10); 所以对于 fun 函数,入口参数 n 等于10;10 大于 1,所以执行 return (n*fun(n-1)); 又调用了 fun(9).
就这样一直调用到 fun(1); 此时 n > 1 不成立,所以不执行
return (n*fun(n-1));
而是执行下一句 return 1; 这样就返回到上一层 fun(2) 的return语句处,即
return ( 2 * fun( 1 ) ); fun(2) 继续向上返回,直到 fun(10);
多一句嘴,从代码风格看,我猜你大概看的是谭浩强的书吧.老谭的书过时了,内容已经非常陈旧了.劝你不要看了.
main() 这种形式过时了,现在应该写成
int main(void)
{
return 0;
}
这种形式.
而且main 函数之前还要写 函数原型.
推荐你用 C Primer Plus 入门,网上有中文版pdf.你可以和谭浩强的书对照着看,看看哪本书好.我认为比老谭的书强多了.
return (n*fun(n-1));
是一个 if 语句.很明显,如果 n 大于 1,则 执行 return (n*fun(n-1)); 否则就执行下面的语句.
因为 main 函数里调用的是 fun(10); 所以对于 fun 函数,入口参数 n 等于10;10 大于 1,所以执行 return (n*fun(n-1)); 又调用了 fun(9).
就这样一直调用到 fun(1); 此时 n > 1 不成立,所以不执行
return (n*fun(n-1));
而是执行下一句 return 1; 这样就返回到上一层 fun(2) 的return语句处,即
return ( 2 * fun( 1 ) ); fun(2) 继续向上返回,直到 fun(10);
多一句嘴,从代码风格看,我猜你大概看的是谭浩强的书吧.老谭的书过时了,内容已经非常陈旧了.劝你不要看了.
main() 这种形式过时了,现在应该写成
int main(void)
{
return 0;
}
这种形式.
而且main 函数之前还要写 函数原型.
推荐你用 C Primer Plus 入门,网上有中文版pdf.你可以和谭浩强的书对照着看,看看哪本书好.我认为比老谭的书强多了.
#includelong fun(int n){if(n>1)return (n*fun(n-1));return 1;
#include long fun(int n) {if(n>1) return (n*fun(n-1)); else
int fun(static int n) {if(n==1)return 1; else return(n+fun(n
有一个自定义函数 fun(n){int c;if(n=1) return c=1;else return c=fun(n
#include int fun(int*x,int n) { if (n==0) return x[0]; else
int fac(int n) {if(n==0||n==1) return 1; else return n*fac(n
double fact(int n) { if (n==0) return 1; else return n*(fact
#include int ant(int n){ if (n>15) return (1,2); else return
int f(int m,int n) { if(m < n) return 0; if(n==0) return 1;
fun(int x) {inta=3;a*=x;return a;}main(){int x=2,y=1,n;n=fun
这个代码的意思#include int f(int n){if (n == 1){return 1;}return f(
int f(int a[ ],int n){ if(n>1) return a[0]+f(&a[1],n-1);