华为机试:求解立方根
#include <iostream> #include <algorithm> #include <iomanip> using namespace std; double binarysearch(double val) { double r = val > 1 ? val : 1; double l = val < 1 ? val : 1; double mid; while (r - l > 0.001) { mid = (r + l) / 2; if (mid * mid * mid < val) { l = mid; } else { r = mid; } } return mid; } int main() { double val; cin >> val; if (val < 0) { cout << '-'; val = -val; } cout << fixed << setprecision(1) << binarysearch(val) << endl; return 0; }