• Day3-K-Can you solve this equation? HDU2199


    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.

    InputThe 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);OutputFor 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!

    思路:二分查找答案问题,设置精度后直接查找即可,代码如下:
    double Y;
    
    double check(double x) {
        return 8 * (x * x * x * x) + 7 * (x * x * x) + 2 * (x * x) + 3 * x + 6;
    }
    
    int main() {
        int T;
        scanf("%d", &T);
        while(T--) {
            double l = 0.0, r = 100.0, mid;
            scanf("%lf", &Y);
            if(check(0.0) > Y || check(100.0) < Y) {
                printf("No solution!
    ");
                continue;
            }
            while(r - l > 1e-10) {
                mid = (r + l) / 2.0;
                if(check(mid) - Y > 0)
                    r = mid;
                else
                    l = mid;
            }
            printf("%.4lf
    ", mid);
        }
        return 0;
    }
    View Code
    
    
  • 相关阅读:
    Linux 环境变量 设置 etc profile
    Linux 升级glibc-2.14 失败 我遇到的问题
    qt窗口的切换
    qt事件机制---事件范例
    qt中的事件机制
    qt的信号与槽函数
    linux下qt的安装
    qt中的udp编程
    qt中的tcp编程
    qt中的多线程
  • 原文地址:https://www.cnblogs.com/GRedComeT/p/11244330.html
Copyright © 2020-2023  润新知