题解 | #求解立方根#
求解立方根
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")