zoukankan      html  css  js  c++  java
  • hdu Can you solve this equation?

    本题是一道二分的题,核心就是mi的大小,即精度的取值。因为原函数是一个单调递增的函数,所以可以确定y的取值范围,并且在范围内的每一个y的值,一定至少存在一个x与其对应。刚开始我将取二分这个环节用一个函数来表示的,但是返回值始终是一个随机值,实在是搞不懂,无奈之下只能将那个步骤直接写在主函数内。。。

    #include"iostream"
    #include"stdio.h"
    #include"algorithm"
    #include"string.h"
    #include"cmath"
    #define mi 1e-8
    using namespace std;
    double cf(double x)
    {
        return 8*x*x*x*x + 7*x*x*x + 2*x*x + 3*x + 6;
    }
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            double y;
            cin>>y;
            if(y<6 || y>807020306)
            {
                printf("No solution!
    ");
                continue;
            }
           double x1=0.0,x2=100.0;
           while(x2-x1>mi)
           {
               double x=(x2+x1)/2.0;
               if(cf(x)>y) x2=x;
               else x1=x;
           }
            printf("%.4lf
    ",x1);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    盲山有感
    一个用Regex的完成sql语句中字段替换的demo
    月夜奔跑
    乱弹
    《勇敢抉择》摘录一
    梦想高歌
    从今天起
    php性能优化
    unity3d shader中RenderType的所有类型
    Unity打包ipa图文教程
  • 原文地址:https://www.cnblogs.com/acm-jing/p/4321021.html
Copyright © 2011-2022 走看看