编写代码以在 C++ 中使用二分法查找平方根

write code to find square-root using bisection method in c++?

本文关键字:二分 平方根 查找 代码 C++      更新时间:2023-10-16

据我所知,平分法缩小了搜索范围并达到特定的值。 请给我一个示例,说明如何制作通用代码以查找平方根。 我认为的方式是采取三个变量低,中,高。 高=用户输入,低=0,中(低+高)/2,问题是如何更改值。

#include <iostream>
using namespace std;
int main() {
   int val;
   cout << "Enter the number: ";
   cin >> val;
   if( val< 0) {
      cout<< "According to my maths its not possible." << endl;
   } else {
      float low = 0, high = val;
      float mid = (low  + high)/2;
      int c = 0;
      while (c != 1) {
         if(mid * mid = val) {
            cout << "Square root is: " << mid <<endl;
            c = 1;
         } else {
            if(mid * mid > val) {
               high = mid;
               mid = (low + high)/2;
            } else {
               low = mid;
               mid = (low + high)/2;
            }
         }
      }
   }
   return 0;
}

假设我们正在寻找sqrt(N)

如此处所述,你必须找到 LOW 和 HIGH 的平均值,如果平均值的平方大于 N,我们用我们刚刚找到的平均值改变高值,如果它小于 N,我们用平均值改变低值。我们重复这些步骤多次,以满足所需的精度。