- c语言知识问题求教?factor这个函数是怎么用的,如果可以,可
- factor这个是怎么用的,
如果可以,可以给个例题不
- 一种可递归的语言,它的函数能够自己调用自己。一个简单的例子就是计算整数阶乘的函数factor( )数N的阶乘是1到N之间所有数字的乘积。例如3的阶乘是1×2×3,即是6。
factor( )和其等效函数fact( )如例4 - 1 0所示。
[例4 - 1 0 ]
factor(n) /* 递归调用方法* /
int n;
{
int answer;
if (n==1)
return (1);
answer=factor(n-1) * n; /* 函数自身调用* /
return(answer);
}
[例4 - 11 ]
fact(n) /* 非递归方法* /
int n;
{
int t,a n s w e r;
answer = 1;
for (t=1; t < = n; t ++)
answer = answer * t;
return(answer);
}
非递归函数fact( )的执行应该是易于理解的。它应用一个从1开始到指定数值结束的循环。
在循环中,用“变化”的乘积依次去乘每个数。
factor( )的递归执行比fact( )稍复杂。当用参数1调用factor( )时,函数返回1;除此之外的其它值调用将返回factor(n-1) * n这个乘积。为了求出这个表达式的值,用( n - 1)调用factor( )一直到n等于1,调用开始返回。