这个代码的时间复杂度 怎么计算

c语言


double exp2(double a,int n)
​{  if(a==0)  return 0;
​   if (n==0) return 1;
​   else
        {          
​         if(n%2)  return a* exp2(a,n/2)* exp2(a,n/2);
​         else    return exp2(a,n/2)* exp2(a,n/2);
​       }
​ }

B.
运行结果正确,时间复杂性为O(n)
C.
运行结果正确,时间复杂性为O(logn)

答案不应该是c么 为什么是b

  1. [](
    ```c++

```)

他每次的分割会有两个递归来补

建议了解分洽算法的时间复杂度