整数幂运算的二进制优化递归实现
整数幂运算
2 n = n 个 2 相 乘 2^n = n 个 2相乘 2n=n个2相乘
普通递归实现
用幂的次数递归
2 n = 2 n − 1 ⋅ 2 2^n = 2^{n-1}\cdot2 2n=2n−1⋅2
如: 2 5 = 2 4 ⋅ 2 2^5 = 2^4 \cdot 2 25=24⋅2
int power(int x,int n)
{
if(!n) return 1; // 递归的终止情况, n = 0 时返回 1
return power(x, n-1)*x;
}
power(2,n);
二进制优化递归实现
幂的次数二分, 或者说用幂的次数的二进制位来递归
2 n =