在 C++ 中查找一个数字的立方根


本文将介绍如何获取数字的立方根。假设有一个数字为 27,那么此数字的立方根为 3。为了解决此问题,我们将在不使用任何库函数的情况下定义自己的逻辑。我们将使用二分查找方法。我们必须遵循下列步骤才能解决此问题。

假设我们有这样的阈值:阈值 = 0.000001

  • 将左值设置为 0,将右值设置为数字

  • 计算 mid := (left + right)/2

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

  • 如果 mid3 大于 number,则将 right := mid

  • 如果 mid3 小于 number,则将 left := 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

更新时间: 01-11-2019

351 次浏览

开启你的 职业生涯

完成课程获得认证

开始学习
广告