下面是使用二分法计算开平方的 C++ 示例代码:
#include <iostream>
double squareRoot(double x, double epsilon = 0.00001) {
double low = 0.0;
double high = x;
double guess = (low + high) / 2.0;
while (std::abs(guess * guess - x) > epsilon) {
if (guess * guess > x) {
high = guess;
} else {
low = guess;
}
guess = (low + high) / 2.0;
}
return guess;
}
int main() {
double number;
std::cout << "Enter a number: ";
std::cin >> number;
double result = squareRoot(number);
std::cout << "Square root of " << number << " is " << result << std::endl;
return 0;
}
在这个示例中,我们定义了一个名为 squareRoot
的函数,它接受一个参数 x
,表示要计算开平方的数,以及一个可选参数 epsilon
,表示误差范围,默认为 0.00001。
在函数中,我们使用二分法来逼近开平方的值。我们首先初始化一个区间 [low, high]
,其中 low
初始为 0,high
初始为 x
。然后,我们计算区间的中点 guess
。如果 guess * guess
大于 x
,则将 high
更新为 guess
,否则将 low
更新为 guess
。重复这个过程,直到 guess * guess
与 x
的差小于 epsilon
,即满足所需的精度。
在 main
函数中,我们从用户输入中获取一个数,并调用 squareRoot
函数计算其开平方。然后,将结果输出到控制台。
希望对你有帮助!