书山小站

记录我的程序人生

[算法] 数的三次方根

请输入图片描述

#include <iostream>
#include <cstdio>
using namespace std;
// 实数二分 
#define Lim 1e-8
bool isget(double n,double ns){
    if(ns*ns*ns == n){
        return true;
    }
    return false;
}
void er(double l, double r, double n){
    double mid = (l+r) /2;
    while(r - l > Lim){
        mid = (l+r) /2;
        if(isget(n,mid)){
           printf("%.6f",mid);
           return;
        }else{
            if(mid*mid*mid  > n) r = mid; else l = mid;
        }
    }
     printf("%.6f",mid);
    
}
int main(){
    double n;
    scanf("%lf",&n);
    er(-1000,1000,n);
    
} 

发表评论

电子邮件地址不会被公开。 必填项已用*标注