题解 | #求解立方根#

求解立方根

http://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca

#第一种:暴力AC

#include<iostream>
#include<iomanip>
using namespace std;

int main(){
    double num;
    double val;
    cin >> num;
    for(val = -20; val <= 20 ; val += 0.01){
        if(num - val * val * val <= 1e-8){
            break;
        }
    }
    cout << fixed << setprecision(1) << val << endl;
    return 0;
}

#第二种:二分法

#include<iostream>
#include<iomanip>//输出格式
#include<cmath>
double Binary_search(double num);
using namespace std;

int main(){
    double num;
    cin >> num;
    cout << fixed << setprecision(1) << Binary_search(num) << endl;
    return 0;
}
double Binary_search(double num){
    double left,right;
    left = num > -1 ? -1 : num;
    right = num > 1 ? num : 1;
    double val;
    while(fabs(right - left) > 1e-8){
        val = (left + right) / 2;//取中值
        if(num - val * val * val <= 1e-8){//选边界
            right = val;
        }else{
            left = val;
        }
    }
    return val;
}
全部评论

相关推荐

用微笑面对困难:这里面最强的是驾驶证了,可以入职美团大厂,然后直接开启黄马褂人生
点赞 评论 收藏
分享
点赞 评论 收藏
分享
09-22 18:09
门头沟学院 C++
点赞 评论 收藏
分享
评论
10
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务