15717:解方程

解方程

https://ac.nowcoder.com/acm/problem/15717

链接:https://ac.nowcoder.com/acm/problem/15717
来源:牛客网
题号:NC15717
时间限制: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
示例1

输入

2
1
20180421

输出

-1
9.9993
#include<iostream>
using namespace std;
int main(){
    int t;
    cin>>t;
    while(t--){
        double y;
        cin>>y;
        double l=0,r=100,m;
        for(int i=0;i<50;i++){
            m=(l+r)/2;
            if(2018*m*m*m*m+21*m+5*m*m*m+5*m*m+14>y){
                r=m;
            }
            else
                l=m;
        }
        if(l==0||r==100)
            cout<<"-1";
        else
            printf("%.4f",r);
        cout<<endl;
    }
    return 0;
}
全部评论
为什么i<50啊
点赞 回复 分享
发布于 2023-07-20 16:50 湖南

相关推荐

飞花断音:这个头像有点搞笑
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务