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

    Can you solve this equation?

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


    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!
    题型:二分查找
    注意,,double型数据不能直接用等号,而应该作使差的绝对值小于一个足够小的数,,水题
    #include<iostream> #include<cstdio> #include<cstring> #include<math.h> using namespace std; double y; double f(double x) {     return 8*x*x*x*x+7*x*x*x+2*x*x+3*x+6-y; } int main() {     int cas;     scanf("%d",&cas);     while(cas--)     {        scanf("%lf",&y);        if(f(0)>0||f(100)<0)        {           printf("No solution! ");           continue;        }        double m,l=0,r=100;        while(r-l>=1e-8)        {             m=(l+r)/2.0;             if(f(m)<0)                l=m;             else                r=m;             if(fabs(f(m))<1e-8)                break;        }        printf("%.4lf ",m);     }     return 0; }
     

  • 相关阅读:
    ECharts之柱状图 饼状图 折线图
    Vue自定义指令(directive)
    HDU 1231 最大连续子序列
    POJ 2533 Longest Ordered Subsequence
    HDU 1163 Eddy's digital Roots
    HDU 2317 Nasty Hacks
    HDU 2571 命运
    HDU 4224 Enumeration?
    HDU 1257 最少拦截系统
    HDU 2740 Root of the Problem
  • 原文地址:https://www.cnblogs.com/smilesundream/p/6642564.html
Copyright © 2011-2022 走看看