华为机试:求解立方根
#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;
}
查看9道真题和解析