设计一个算法,采用分治法求x的n次方,写出代码
时间: 2023-05-21 22:01:47 浏览: 196
算法设计与分析:分治法求最近点对问题(完整代码)
以下是使用分治法求x的n次方的算法和代码:
算法:
1. 如果n等于0,则返回1。
2. 如果n是偶数,则将x的n次方转换为x的n/2次方的平方。
3. 如果n是奇数,则将x的n次方转换为x的(n-1)/2次方的平方乘以x。
4. 递归地计算x的n/2次方或(x-1)/2次方的平方乘以x。
5. 返回结果。
代码:
double power(double x, int n) {
if (n == 0) {
return 1.0;
}
double half = power(x, n / 2);
if (n % 2 == 0) {
return half * half;
} else if (n > 0) {
return half * half * x;
} else {
return half * half / x;
}
}
阅读全文