应用2分的一道题

链接:https://www.nowcoder.com/acm/contest/115/F
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

对于方程 2018 * x ^ 4 + 21 * x + 5 * x ^ 3 + 5 * x ^ 2 + 14 = Y,
告诉你Y的值,你能找出方程在0~100之间的解吗?

输入描述:

第一行输入一个正整数T(表示样例个数)
接下来T组样例
每组样例一行,输入一个实数Y

输出描述:

一行输出一个样例对应的结果,
输出方程在0~100之间的解,保留小数点后4位小数;如果不存在,输出 -1
#include<bits/stdc++.h>
using namespace std;

int main()
{	
	int t;
	cin >> t;
	while(t --)
	{
		double y;
		cin >> y;
		double l = 0 ,r = 100, mid;
		int cnt = 100000;
		while(cnt --)
		{
			mid = (l + r) / 2;
			if(2018*mid*mid*mid*mid+21*mid+5*mid*mid*mid+5*mid*mid+14>y)
			r = mid;
			else
			l = mid;
		}
		if(l == 0)
		cout << -1 << endl;
		else
		printf("%.4lf\n",mid);
	}
	return 0;
} 


猜你喜欢

转载自blog.csdn.net/Soul_97/article/details/80036030