使用递归函数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';