题解 | #求解立方根#
求解立方根
http://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
#include<iostream> #include<math.h> using namespace std; int main() { double num; double min; double max; double result; while(cin>>num) { int flag = 0; int tmp = 0; //负数解决了 if(num<0) { num = 0-num; flag = 1; } while(abs(num)<1) { num *=1000; tmp ++; } min = 0; max = num; result = (max+min)/2; while(abs(result*result*result - num)>0.05) { if(result*result*result - num >0) { max = result; result = (max+min)/2; } else if(result*result*result - num <0) { min = result; result = (max+min)/2; } } if(flag == 1) { result = 0-result; } while(tmp) { result /= 10; tmp --; } printf("%.1f\n",result); } return 0; }