题解 | #求解立方根#
求解立方根
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,导致计算出错,实际上只需要设定好上下限,然后逐步逼近的方式进行求值即可。
查看10道真题和解析