在C ++中找到数字的立方根
在这里,我们将看到如何获得数字的立方根。假设一个数字为27,则该数字的立方根为3。为解决此问题,我们将定义自己的逻辑,而无需使用某些库函数。我们将使用二进制搜索方法。我们必须按照以下步骤解决此问题。
假设我们有阈值,例如threshold=0.000001
左值开始为0,右值开始为数字
计算中点:=(左+右)/2
如果(number–mid3)的绝对值小于阈值,则返回mid作为答案
如果mid3大于数字,则设置右:=mid
如果mid3小于数字,则向左设置:=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