题解 | #求解立方根#
求解立方根
http://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
#include<iostream>
#include<stdio.h>
#include<cstdio>
using namespace std;
int main()
{
double a;
while(cin>>a)
{
int e=0;
if(a<0)
{
e=1;
a=-a;
}
double d;
for(int i=0;i<a;i++)
{
if(i*i*i<a&&(i+1)*(i+1)*(i+1)>a)
{
d=i;
break;
}
}
double c=d+1;
while(c-d>=0.001)
{
if((d+(c-d)/2)*(d+(c-d)/2)*(d+(c-d)/2)>a)
{
c=d+(c-d)/2;
}
else if((d+(c-d)/2)*(d+(c-d)/2)*(d+(c-d)/2)<a)
{
d=d+(c-d)/2;
}
}
double g=(d+(c-d)/2);
if(e==0)
{
printf("%.1f\n",g);
}
else if(e==1)
{
cout<<'-';
printf("%.1f\n",g);
}
}
return(0);
}
#include<stdio.h>
#include<cstdio>
using namespace std;
int main()
{
double a;
while(cin>>a)
{
int e=0;
if(a<0)
{
e=1;
a=-a;
}
double d;
for(int i=0;i<a;i++)
{
if(i*i*i<a&&(i+1)*(i+1)*(i+1)>a)
{
d=i;
break;
}
}
double c=d+1;
while(c-d>=0.001)
{
if((d+(c-d)/2)*(d+(c-d)/2)*(d+(c-d)/2)>a)
{
c=d+(c-d)/2;
}
else if((d+(c-d)/2)*(d+(c-d)/2)*(d+(c-d)/2)<a)
{
d=d+(c-d)/2;
}
}
double g=(d+(c-d)/2);
if(e==0)
{
printf("%.1f\n",g);
}
else if(e==1)
{
cout<<'-';
printf("%.1f\n",g);
}
}
return(0);
}
携程公司氛围 125人发布