题解 | #求解立方根#
求解立方根
https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
#include <stdio.h>
#include <math.h>
int main() {
    double high=3,low=-3;
    double mid=(high+low)/2;
    double val;
    scanf("%lf",&val);
    while(fabs(val-mid*mid*mid)>=0.000001){
        if(val-mid*mid*mid>0){
            low=mid;
        }
        else{
            high=mid;
        }
        mid=(high+low)/2;
    }
    printf("%.1lf",mid);
    return 0;
}
简单二分的思路,最开始因为忽略了val带有绝对值,所以下限的设置成了0,导致计算出错,实际上只需要设定好上下限,然后逐步逼近的方式进行求值即可。
查看6道真题和解析
