宁波工程学院 1346 二分

来源:互联网 发布:在mac上制作u盘启动盘 编辑:程序博客网 时间:2024/04/25 14:35

http://ac.nbutoj.com/Problem/view.xhtml?id=1346

  • 问题描述
  • 老虎想和兔子玩, 所以老虎一直追着兔子, 兔子觉着老虎很笨, 就一直躲着老虎.
    有天, 兔子躲烦了. 停下来对老虎说 : "我最近对一个问题感到十分的困惑, 如果你能帮我解决我的问题, 我就不躲着你了."
    有一个方程, 如下所示.

    其中0 < q, s, t, u< 500 且 r , v < 0.
    兔子想知道该方程在 [0, 1] 区间内的所有解.
    老虎一下子就不知道该怎么办了.
  • 输入
  • 本题有多组输入, 对于每组数据, 在一行内包含q, r, s, t, u, v
  • 输出
  • 对于每一组输出, 从小到大输出方程的所有解, 用空格分隔, 保留3位小数. 否则输出 -1
  • 样例输入
  • 1 -1 1 1 1 -1
  • 样例输出
  • 0.522
#include <stdio.h>#include <iostream>#include <cmath>using namespace std;int q,r,s,v,t,u,x;double root(double x){    return q*sin(x)+r*cos(x)+s*tan(x)+t*x*x+v+u*x;}int main(){   while(~scanf("%d%d%d%d%d%d",&q,&r,&s,&t,&u,&v))   {       x=-1;       double left=0;       double right=1;       double mid;       while(left<right)       {           mid=(left+right)/2;           double t=root(mid);           if(t<0.0001&&t>-0.0001)           {                x=mid;                break;           }           else if(t<0)              left=mid;           else              right=mid;       }       if(x!=-1)         printf("%.3f\n",mid);       else         printf("-1\n");   }   return 0;}



0 0
原创粉丝点击