在 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 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告