我在练习一些 C 问题时遇到了一个递归函数以表达式作为参数调用自身的场景。
Pow(double x, unsigned n){
.....
.....
return Pow(x*x,n/2);
}
我的问题是在评估表达式时是否传递了参数(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;
}
选项 5、6、8、12