AcWing_790 数的三次方根(二分)

AcWing

790. 数的三次方根

注意,pow函数不能处理负数,移位运算符只能操作整型数据。

二分

#include <bits/stdc++.h>
using namespace std;
double n;
double l = -30, r = 30;
int main(){
    cin >> n;
    while(r - l > 1e-10){
        double mid = (l + r) / 2;
        if(mid * mid * mid >= n) r = mid;
        else l = mid;
    }
    cout << setiosflags(ios::fixed) << setprecision(6) << r << endl;
}

cbrt()函数

#include <bits/stdc++.h>
using namespace std;
double n;
int main(){
    cin >> n;
    double res = cbrt(n);
    cout << setiosflags(ios::fixed) << setprecision(6) << res << endl;
}