实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。c语言版本
时间: 2024-02-20 21:00:13 浏览: 59
UsbDriverDev,c语言pow函数实现源码,c语言程序
可以使用递归或循环来实现 pow 函数。以下是一个使用循环的 C 代码示例:
```c
double myPow(double x, int n) {
double result = 1;
long long absN = n > 0 ? n : -(long long)n; // 避免溢出
while (absN > 0) {
if (absN & 1) { // 如果 n 是奇数
result *= x;
}
x *= x;
absN >>= 1; // 右移一位,相当于除以2
}
return n > 0 ? result : 1 / result;
}
```
该函数使用了位运算的技巧来提高代码效率。如果 n 是偶数,可以将 x 的 n 次幂拆分为 x 的 n/2 次幂的平方;如果 n 是奇数,可以将 x 的 n 次幂拆分为 x 的 (n-1)/2 次幂的平方再乘以 x。
该函数的时间复杂度为 O(log n),空间复杂度为 O(1)。
阅读全文