我正在练习一些C问题遇到一个递归函数用表达式作为参数调用自身的场景.
Pow(double x, unsigned n){
.....
.....
return Pow(x*x,n/2);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否计算表达式(X*X,如在由值调用)时,参数被传递或执行此一惰性求即,不评价使用时为止.
以下是详细问题
查找调用Pow(5.0,12)的乘法次数?
Pow(double x, unsigned n) {
if(n==0) return 1;
if(n==1) return x;
if(n%2==0) return Pow(x*x,n/2);
else
return Pow(x*x,n/2)*x;
}
Run Code Online (Sandbox Code Playgroud)
选项5,6,8,12
c recursion parameter-passing generic-programming call-by-value