题解 | #求解立方根#
求解立方根
https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
#include <iostream> using namespace std; #include <iomanip> double x3(const double & x){ double res; res = x * x * x; return res; } double mid(const double x1, const double x2){\ double res; res = (x1 + x2)/2; return res; } int main() { double num; cin >> num; double res = num/2; double lastMaxRes = max(1.0,num); double lastminRes = min(-1.0,num); while(abs(lastMaxRes - lastminRes) > 0.01){ if(x3(res) > num){ lastMaxRes = res; res = mid(lastminRes,res); } else{ lastminRes = res; res = mid(res,lastMaxRes); } } cout << setprecision(1) << fixed << res << endl; }
主要还需要注意负数输入的问题,如果输入的数绝对值小于1,则需要注意设置的上下限
输出一位精度则使用库函数iomanip的功能