小编Pha*_*mmi的帖子

C代码:在递归调用中将表达式作为参数传递

我正在练习一些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

0
推荐指数
1
解决办法
588
查看次数