将相同的数字乘以三次称为该数字的立方。或者我们可以说该数的 3 次方。例如 3 * 3 * 3 = 27,这是一个立方数。但如果我们想要执行相反的操作,我们需要找到数字的立方根。例如 $sqrt[3]{27}$ = 3。在本文中,我们将讨论如何在 C++ 中计算给定数字的立方根。有几种不同的技术可以做到这一点。
cbrt() 是一个库函数,用于计算给定数的立方根。如果该数是一个完全的立方数,则结果是一个整数,否则,它将返回一个浮点数。该函数只接受一个参数并返回其立方根。要使用此函数,我们必须将 cmath 库导入到 C++ 程序中。让我们看一下该函数的语法。
#include < cmath > cbrt( <cubic number> )
#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 库中的库函数来计算数字的立方根。在本节中,我们将创建函数来计算给定数字的立方根。该算法如下所示 -
i. end := mid。
i. start := 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 库或任何第三方库的情况下计算立方根,我们可以使用数值方法来计算。在我们的示例中,我们使用二分法来计算立方根。在给定的示例中,仅当给定的数字是完美立方数时,该函数才会起作用。对于立方根不是整数的任何其他数字,它可能不起作用。我们可以添加一定的误差精度方法来处理其他非整数结果,例如立方根。
以上是C++ 计算给定数字的立方根的程序的详细内容。更多信息请关注PHP中文网其他相关文章!