C++不使用库函数求立方根


题目描述
•计算一个数字的立方根,不使用库函数
输入描述:
待求解参数 double类型
输出描述:
输入参数的立方根 也是double类型,保留一位小数。
示例:
输入:216
输出:6.0

#include
#include
using namespace std;

//二分法
double getCubic(double x)
{
    if(x==0) return 0;
    double low=0;
    double top=x;
    if(x<0){
        low=x;
        top=0;
    }
    while((top-low)>1e-7){
        double mid=(low+top)/2;
        double tmp=mid*mid*mid;
        if(tmp>x){
            top=mid;
        }
        else if(tmp1e-7){  //fabs()计算浮点数的绝对值
        x0=x1; //更新迭代变量
        x1=x0-(x0*x0*x0-x)/(3*x0*x0); 
    }
    return x1;
}

int main(int argc,char **argv)
{
    double x;
    cout.precision(1); //设置输出浮点数精度为1
    while(cin>>x){  
        double res=getCubic1(x);
        cout<

知识点复习:

1. abs() 与 fabs()的区别

  • abs()主要对整数取绝对值,在C++11中其形参可以是intlong intlong long三种:

    abs()

  • fabs()主要对浮点数取绝对值,在C++11中其形参可以是doublefloatlong double

    fabs()

2.C++格式化输出——设置输出浮点数的精度
ostream 类的成员方法precision(n),可以设置输出的浮点数精度为n。
参考链接:http://c.biancheng.net/view/7578.html

你可能感兴趣的:(C++不使用库函数求立方根)