在 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP