使用递归函数myPowerFunction(int p,int n,int&currentCallNumber)计算P的n次幂(p和n均为正整数)。 currentCallNumber是一个引用参数,并存储到目前为止进行的函数调用数。 myPowerFunction返回p的n次幂。

int myPowerFunction(int p, int n, int &z)
{
    z++;
    if(n==1)return p;
    else if(n==0)return 1;
    else if(n%2==0)return myPowerFunction(p,n/2,z)*myPowerFunction(p,n/2,z);
    else return myPowerFunction(p,n/2,z)*myPowerFunction(p,n/2,z)*p;
}

int main()
{
    cout << myPowerFunction(3,4,1);
}

最佳答案

您需要一个变量作为main_program中的第三个参数传递。您不能将常量作为非常量引用传递。

int count = 0;
std::cout << myPowerFunction(3, 4, count) << 'n';
std::cout << count << '\n';

10-06 02:45