在C ++中找到数字的立方根

在这里,我们将看到如何获得数字的立方根。假设一个数字为27,则该数字的立方根为3。为解决此问题,我们将定义自己的逻辑,而无需使用某些库函数。我们将使用二进制搜索方法。我们必须按照以下步骤解决此问题。

假设我们有阈值,例如threshold = 0.000001

  • 左值开始为0,右值开始为数字

  • 计算中点:=(左+右)/ 2

  • 如果(number – mid3)的绝对值小于阈值,则返回mid作为答案

  • 如果mid3大于数字,则设置右:= mid

  • 如果mid3小于数字,则向左设置:= mid

示例

#include<iostream>
#include<cmath>
using namespace std;
   double cubeRoot(int num) {
   double threshold = 0.000001;
   double left = 0, right = num;
   double mid;
   while(left <= right){
      mid = (left + right)/2;
      if(abs(num - (mid*mid*mid)) < threshold)
         return mid;
      if((mid*mid*mid) > num)
         right = mid;
      if((mid*mid*mid) < num)
         left = mid;
   }
}
int main() {
   int n = 3;
   cout << "cube root of 3 is: " << cubeRoot(n);
}

输出结果

cube root of 3 is: 1.44225