C++求数的三次方根(二分)

给定一个浮点数n,求它的三次方根。
输入格式
共一行,包含一个浮点数n。
输出格式
共一行,包含一个浮点数,表示问题的解。
注意,结果保留6位小数。
数据范围
−10000≤n≤10000
输入样例:
1000.00
输出样例:
10.000000

AC代码:

#include<stdio.h>

double n;
double ans;

double figure(double x)
{
    
    
    return x*x*x;
}

int main()
{
    
    
    scanf("%lf",&n);
    double l,r,mid;
    n>=0?(l=0,r=n):(l=n,r=0);//保证l是小端,r是大端
    double temp;
    while(r-l>=0.0000001)//保证小数点后6位准确,选1e-7
    {
    
    
        mid=(l+r)/2;
        temp=figure(mid);
        if(temp>n){
    
    
            r=mid;
        }
        else if(temp<n){
    
    
            l=mid;
        }
        else {
    
    ans=mid;break;}
        ans=l;//一般优先取小的近似值
    }
    printf("%.6lf\n",ans);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_44643644/article/details/108782802