题解 | #求解立方根#
求解立方根
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")
腾讯成长空间 5960人发布
查看15道真题和解析