题解 | #求解立方根#
求解立方根
https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
#include <cmath> #include <iostream> using namespace std; int main(){ double num; std::cin >> num; double val = num>0.0 ? num:-num; //std::cout << val << std::endl; double r = max(1.0,val),l=0.0,mid; //std::cout << r << std::endl; while(fabs(r-l) > 0.00001){ mid = (r+l)/2; //std::cout << "r,l,mid:" <<r<<","<<l<<","<<mid<< std::endl; if(mid*mid<val/mid){ l=mid; }else{ r=mid; } } if(num < 0) mid=-mid; printf("%.1f",mid); return 0; }