题解 | #求解立方根#
求解立方根
https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
#include <iostream> #include <algorithm> #include <cstring> #include <cmath> using namespace std; int main() { double q; double a; cin >> a; int flag =0; if(a < 0){ flag = 1; a=0-a; } float f=0.1; double p = 0.01; int d=1; int i=0; while(1){ if(i * i*i > a){ d = i-1; break; } i++; } q=d+f; while(1){ if(q*q*q > a){ q=q-0.1; break; } q =q+0.1; } p=q; while(1){ if(p*p*p > a){ if(p - q > 0.05){ if(flag == 1){ cout << 0-q-0.1 << endl; }else cout << q+0.1 << endl; return 0; }else{ if(flag == 1){ cout << 0-q << endl; }else cout << q << endl; return 0; } break; } p=p+0.01; } return 0; } // 64 位输出请用 printf("%lld")