解方程
链接:https://ac.nowcoder.com/acm/problem/15717
来源:牛客网
题目描述
对于方程 2018 * x ^ 4 + 21 * x + 5 * x ^ 3 + 5 * x ^ 2 + 14 = Y,
告诉你Y的值,你能找出方程在0~100之间的解吗?。
输入描述:
第一行输入一个正整数T(表示样例个数)
接下来T组样例
每组样例一行,输入一个实数Y
输出描述:
一行输出一个样例对应的结果,
输出方程在0~100之间的解,保留小数点后4位小数;如果不存在,输出 -1
分析:
将0和100代入方程可以得到 y 的范围,当 x 的解不是整数时就比较麻烦了,不能用2018pow(mid,4)+21mid+5pow(mid,3)+5pow(mid,2)+14=y去判断,因为计算机运算时会损失精度,所以只能得到一个逼近正确值的近似解。
C语言方法
代码如下:
#include<stdio.h>
#include<math.h>
int main()
{