在c语言中编写一个代码高效求x的n次方
时间: 2024-03-05 14:50:46 浏览: 79
c语言中x的n次方怎么写
可以使用快速幂算法来高效求解x的n次方,其时间复杂度为O(log n)。
快速幂算法的思路是将n表示为二进制形式,比如n=13,可以表示为1101,那么x的13次方就可以表示为x的(2^0)次方乘以x的(2^2)次方乘以x的(2^3)次方。
具体实现代码如下:
```c
double power(double x, int n) {
if (n == 0) {
return 1.0;
}
double res = power(x, n / 2);
if (n % 2 == 0) {
return res * res;
} else {
return res * res * x;
}
}
double myPow(double x, int n) {
if (n < 0) {
x = 1 / x;
n = -n;
}
return power(x, n);
}
```
其中,power函数用来计算x的n次方,myPow函数用来判断n的正负性,并调用power函数计算x的n次方。
阅读全文