题解 | #求解立方根#

求解立方根

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

#include <iostream>
#include<cstdio>
#include<cmath>
using namespace std;


int main() {
    double a;
    int idx;
    cin>>a;
    double lo=0.0;		//用lo作为备选
    if(a>0)idx=1;		//idx记录符号
    else idx=-1;
    a*=idx;				//只考虑绝对值部分
    while(lo*lo*lo<a-0.001)lo+=0.1;			//考虑第一位小数
    lo-=0.1;								//立方超出,回退到上一个满足条件的候选
    int cnt=0;
    while(lo*lo*lo<a-0.001)lo+=0.01;cnt++;		//考虑第二位小数
    lo-=0.01;
    while(lo*lo*lo<a-0.001)lo+=0.001;			//考虑第三位小数
    lo-=0.001;
//    cout<<lo<<endl;
    printf("%.1lf",idx*lo);				//不要忘记把符号还原

}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务