在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

以上是 在C ++中找到数字的立方根 的全部内容, 来源链接: utcz.com/z/358168.html

回到顶部