NEFU-1645 小清新的函数坐标

NEFU-1645 小清新的函数坐标

/ 0评 / 1243次 / 0

Description

一天,小清新用一些奇奇怪怪的工具绘制函数图像,玩得不亦乐乎,期间发现了一个函数: F(x) = 0.0001 x^5 + 0.003 x^3 + 0.5 x - 3 ,聪明的他一眼see穿了它的单调性,现在,小清新想标注一些点,已经写出了它们的 y 坐标值 ,聪明的你能帮助 可爱善良的小清新把对应的 x 坐标值找出来么。谢谢啦! 保证: -20 < x < 20 。答案精确到小数点后第5位。数据多组输入形式。

Input

(多组输入)每行一个实数 y

Output

每行一个四位小数 x

Accepted Code

//F(x) =  0.0001 x^5 + 0.003 x^3 + 0.5 x - 3 
#include <bits/stdc++.h>
using namespace std;
#define esp 0.00001
double solve(double x)
{
    return 0.0001*pow(x,5) + 0.003*pow(x,3)+ 0.5*x - 3;
}
int main()
{
    double y;
    while(~scanf("%lf",&y))
    {
        double l=-20,r=20;
        while(solve((r+l)/2)-y>esp||solve((r+l)/2)-y<-esp)
        {
            if(solve((r+l)/2)-y>esp)
            {
                r=(l+r)/2;
            }
            else if (solve((r+l)/2)-y<-esp)
            {
                l=(l+r)/2;
            }
            if(r-l<=esp)
            {
                break;
            }
        }
        printf("%.4lf\n",(r+l)/2);
    }
    return 0;
}

发表回复

您的电子邮箱地址不会被公开。

你好 No.59611