题解 | #求解立方根# 浮点数二分法

求解立方根

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

注意数字 a 如果在[0, 1],那么它的立方根是比它大的,右边界取到 a 是不够的,负数同理。

#include <bits/stdc++.h>

using namespace std;

void solve(double &a) 
{
    double lo = a < 0 ? min(a, -1.0) : 0.0;
    double hi = a > 0 ? max(a, 1.0) : 0.0;
    for (int i = 0; i < 1000; i++) {
        double mid = (double)(lo + hi) / 2;
        if (mid * mid * mid < a) lo = mid;
        else hi = mid;
    }

    cout << setiosflags(ios::fixed) << setprecision(1) << lo << endl;
}

int main()
{
    double a;
    for (; cin >> a;)
        solve(a);
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
06-06 03:40
已编辑
电子科技大学 Java
在秋招的小白菜很想养修勾:一眼 苍穹外卖+谷粒商城,项目换一换吧,可以找一些付费知识星球博主带带,避免烂大街。多投投大厂,背背八股,你这学历乱杀了,等实习经验到位,到时候大厂闭眼选
投递美团等公司8个岗位
点赞 评论 收藏
分享
mjasjon:这种trash中厂 简历过筛概率比大厂还低(除阿里系)
投递哔哩哔哩等公司8个岗位
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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