zoukankan      html  css  js  c++  java
  • hdu 2199 Can you solve this equation?(高精度二分)

    http://acm.hdu.edu.cn/howproblem.php?pid=2199

    Can you solve this equation?

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 13468    Accepted Submission(s): 6006


    Problem Description
    Now,given the equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you find its solution between 0 and 100;
    Now please try your lucky.
     
    Input
    The first line of the input contains an integer T(1<=T<=100) which means the number of test cases. Then T lines follow, each line has a real number Y (fabs(Y) <= 1e10);
     
    Output
    For each test case, you should just output one real number(accurate up to 4 decimal places),which is the solution of the equation,or “No solution!”,if there is no solution for the equation between 0 and 100.
     
    Sample Input
    2
    100
    -4
     
    Sample Output
    1.6152
    No solution!
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    #define N 100010
    
    using namespace std;
    
    int main()
    {
        int t, y;
        double low, high, mid, k, x1, x2;
        scanf("%d", &t);
        while(t--)
        {
            scanf("%d", &y);
            low = 0;
            high = 100;
            x1 = 8 * pow(0, 4) + 7 * pow(0, 3) + 2 * pow(0, 2) + 3 * 0 + 6;
            x2 = 8 * pow(100, 4) + 7 * pow(100, 3) + 2 * pow(100, 2) + 3 * 100 + 6;
            if(x1 <= y && y <= x2)
            {
                while(high - low > 1e-7)/*注意1e-7*/
                {
                    mid = (low + high) / 2;
                    k = 8 * pow(mid, 4) + 7 * pow(mid, 3) + 2 * pow(mid, 2) + 3 * mid + 6;
                    if(k > y)
                        high = mid - 1e-7;
                    else if(k < y)
                        low = mid + 1e-7;
                }
                printf("%.4f
    ", 1.0 * (low + high) / 2);
            }
            else
                printf("No solution!
    ");
    
        }
        return 0;
    }
     
  • 相关阅读:
    torch 入门
    编译CDH Spark源代码
    Marsedit 破解版下载(3.5.6)
    程序员必备:技术面试准备手册
    360私有化详细资料曝光:抵押总部大楼(转)
    底层软件工程师的一次冒险经历
    这十种算法撑起了整个世界
    秒杀系统架构分析与实战(深度学习资料)
    北京程序员 VS 硅谷程序员(转)
    Timestamp 使用
  • 原文地址:https://www.cnblogs.com/qq2424260747/p/4780862.html
Copyright © 2011-2022 走看看