C++程式計算給定數字的立方根
將同一個數字乘以三次稱為該數字的立方,或者可以將其稱為數字的三次冪。例如,3 * 3 * 3 = 27,這是一個立方數。但如果我們想執行反向操作,我們需要找到該數字的立方根。例如 $\sqrt[3]{27}$ = 3。在本文中,我們將討論如何在 C++ 中計算給定數字的立方根。有幾種不同的技術可以做到這一點。
使用cbrt()函式
cbrt() 是一個用於計算給定數字的立方根的庫函式。如果該數字是完全立方數,則結果為整數;否則,它將返回浮點數。此函式只接受一個引數並返回其立方根。要使用此函式,我們必須將 cmath 庫匯入 C++ 程式。讓我們看看此函式的語法。
語法
#include < cmath > cbrt( <cubic number> )
演算法
- 將立方數 x 作為輸入。
- 使用 cbrt(x) 計算 x 的立方根。
- 返回結果。
示例
#include <iostream> #include <cmath> using namespace std; float solve( int x ) { float answer; answer = cbrt( x ); return answer; } int main() { cout << "Cube root of 125 is: " << solve( 125 ) << endl; cout << "Cube root of 27 is: " << solve( 27 ) << endl; cout << "Cube root of 158 is: " << solve( 158 ) << endl; cout << "Cube root of 1000000 is: " << solve( 1000000 ) << endl; }
輸出
Cube root of 125 is: 5 Cube root of 27 is: 3 Cube root of 158 is: 5.40612 Cube root of 1000000 is: 100
不使用庫函式
在前面的示例中,我們已經看到了如何使用來自 cmath 庫的庫函式來計算數字的立方根。在本節中,我們將建立我們自己的函式來計算給定數字的立方根。演算法如下所示:
演算法
- 取需要計算立方根的數字,例如 x。
- start := 0。
- end := x。
- mid := (start + end) / 2。
- 當 x 與 mid3 不相同時,執行以下操作。
- mid := (start + end) / 2。
- 如果 mid3 > x,則。
i. end := mid。
- 結束if。
- 如果 mid3 < x,則。
i. start := mid。
- 結束if。
- 結束while。
- 列印 mid。
示例
#include <iostream> #include <cmath> using namespace std; float solve( int x ) { int start = 0; int end = x; float mid = ( start + end ) / 2; while ( (mid * mid * mid) != x ) { mid = ( start + end ) / 2; if ( mid * mid * mid < x ) start = mid; else if( mid * mid * mid > x) end = mid; } return mid; } int main() { cout << "Cube root of 125 is: " << solve( 125 ) << endl; cout << "Cube root of 27 is: " << solve( 27 ) << endl; cout << "Cube root of 1000000 is: " << solve( 1000000 ) << endl; }
輸出
Cube root of 125 is: 5 Cube root of 27 is: 3 Cube root of 1000000 is: 100
這種方法的一個缺點是,它很容易計算完全立方數。我們可以使用適當的誤差精度管理來使其也能處理浮點結果。
結論
當我們使用cmath標頭檔案中提供的cbrt()函式時,計算數字的立方根非常簡單直接。此方法只接受一個引數,即立方數,然後找到它的立方根。另一方面,如果我們希望在不使用cmath庫或任何第三方庫的情況下計算立方根,我們可以使用數值方法來計算相同的結果。在我們的示例中,我們使用了二分法來計算立方根。在給定的示例中,該函式僅在給定數字為完全立方數時才有效。對於立方根不是整數的任何其他數字,它可能無效。我們可以新增某些誤差精度方法來處理其他非整數結果,例如立方根。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP