在 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
广告