在 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