题解 | #求解立方根#

求解立方根

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")

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-02 21:36
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务