【华为OJ】求解立方根

输入输出均为double型,不允许使用库函数

#include 
using namespace std;

int main()
{
	double a, b;
	cin >> a ;
	if (a > 0)
	{
		for (b = 0.00;b < a;b = b + 0.1)
		{
			if ((a-b*b*b)<0.1)
			{
				printf("%.1f", b);
				break;
			}
		}
	}
	else
	{
		for (b = 0.0;b > a;b = b - 0.1)
		{
			if ((b*b*b - a)<0.1)
			{
				printf("%.1f",b);
				break;
			}
		}		
	}
	return 0;
}

居然是满分,其实得到的结果并不精确,可能系统默认的case都是可以得到整数立方根的。

这里用了printf限制输出位数(也是投机取巧了),cout同样有限制位数的,用setprecision(1).

你可能感兴趣的:(华为OJ)