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