题解 | #求解立方根#
求解立方根
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;
}

查看3道真题和解析