790. 数的三次方根

给定一个浮点数 nn,求它的三次方根。

输入格式

共一行,包含一个浮点数 nn。

输出格式

共一行,包含一个浮点数,表示问题的解。

注意,结果保留 6位小数。

数据范围

−10000≤n≤10000−10000≤n≤10000

输入样例:

1000.00

输出样例:

10.000000

 错误代码:

#include
#include
using namespace std;
 

int main(){
	int flag=1;
	double x;
	cin>>x;
	if(x<0)
		flag=-1,x=x*(-1);
	double l=0,r=x;
	while(abs(r-l)>1e-8)
	{
		double mid= (l+r)/2;
		if(mid*mid*mid>=x) r=mid;
		else l=mid;
	}
	printf("%lf\n",l*flag);
	return 0;
}

 

代码运行状态: 错误数据如下所示   ×

输入
输出

-0.001000

标准答案

-0.100000

正确代码:

#include
#include
using namespace std;
 

int main(){
	int flag=1;
	double x;
	cin>>x;
	if(x<0)
		flag=-1,x=x*(-1);
	double l=-10005,r=10005;
	while(abs(r-l)>1e-8)
	{
		double mid= (l+r)/2;
		if(mid*mid*mid>=x) r=mid;
		else l=mid;
	}
	printf("%lf\n",l*flag);
	return 0;
}

你可能感兴趣的:(acwing题解,蓝桥杯,职场和发展)