c++二分法求平方根函数
时间: 2024-09-24 08:21:36 浏览: 46
在 C++ 中,可以使用牛顿迭代法或者二分搜索法(也称作二分逼近法)来实现一个近似计算平方根的函数。二分法求平方根的基本思想是不断将一个数的范围缩小,直到找到一个足够接近实际平方根的结果。
以下是使用二分查找法的简单示例:
```cpp
#include <iostream>
#include <cmath> // 引入 math 库,用于比较精度
// 函数模板,输入一个正实数和它的精度范围
template <typename T, typename Compare = std::less<T>>
T binary_search_square_root(T num, double epsilon = 1e-6) {
if (num == 0) return 0;
T left = 0, right = num;
while (right - left > epsilon) {
T mid = left + (right - left) / 2; // 二分点
if (mid * mid <= num) left = mid; // 如果mid*mid小于等于num,则向右移动
else right = mid; // 否则,向左移动
}
return left;
}
int main() {
double num = 4.0; // 需要求平方根的数
double result = binary_search_square_root(num);
std::cout << "Square root of " << num << " is approximately " << result << std::endl;
return 0;
}
```
阅读全文