题目链接:https://www.luogu.org/problemnew/show/P1024

题目描述

有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。

提示:记方程f(x)=0,若存在2个数x1和x2,且x1<x2,f(x1)*f(x2)<0,则在(x1,x2)之间一定有一个根。

输入输出格式

输入格式:

一行,4个实数A,B,C,D。

输出格式:

一行,三个实根,并精确到小数点后2位。

输入样例#1: 

1 -5 -4 20
输出样例#1:

-2.00 2.00 5.00

解题思路由于题目说明两根之差的绝对值>=1,所以长度为1的区间内最多只有一个跟,于是我们先遍历区间,利用f(x1)*f(x2)<0来判断该区间内是否有根,再对有根的区间进行二分,找到根的精确值。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
double a, b, c, d;
double f(double x)
{
    return (a*x*x*x + b * x*x + c * x + d);
}
int main()
{
    double x1, x2, xx;
    cin >> a >> b >> c >> d;
    ; x <= 100; x++)
    {
        x1 = x; x2 = x + ;//确定根可能所在的区间
        )printf("%.2f ", x1);      //考虑根在区间端点上的情况
        )//如果小于0,则确定根在区间[x1,x2]中
        {
            while (x2 - x1 >= 0.001)     //二分法确定根的值,由于要精确到小数点后2位,所以这里要算到第三位
            {
                xx = (x1 + x2) / ;
                )x2 = xx;
                else x1 = xx;
            }
            printf("%.2f ", x1);
        }
    }
    ;
}
2018-05-15

洛谷 [P1024]一元三次方程求解【二分答案】的更多相关文章

  1. [NOIP提高&洛谷P1024]一元三次方程求解 题解(二分答案)

    [NOIP提高&洛谷P1024]一元三次方程求解 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约 ...

  2. 洛谷——P1024 一元三次方程求解

    P1024 一元三次方程求解 题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-10 ...

  3. 洛谷P1024 一元三次方程求解

    P1024 一元三次方程求解 题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-10 ...

  4. [NOIP2001] 提高组 洛谷P1024 一元三次方程求解

    题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...

  5. 【洛谷P1024一元三次方程求解】

    题目描述 有形如: ax3 + bx2 + cx1 + dx0 = 0 这样的一个一元三次方程.给出该方程中各项的系数( a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在 -100 ...

  6. 洛谷 [P1024]一元三次方程求解

    一道水题然而坑点很多. #include <iostream> #include <cstdio> #include <algorithm> #include &l ...

  7. 洛谷P1024 一元三次方程求解(数学)

    题意 题目链接 Sol 本来是一道好的公式题. 然后输出只要保留两位小数?? 直接上不就赢了嘛.. #include<bits/stdc++.h> #define LL long long ...

  8. P1024 一元三次方程求解

    P1024 一元三次方程求解 #include<cstdio> #include<iostream> #include<algorithm> using names ...

  9. [CodePlus 2017 11月赛&洛谷P4058]木材 题解(二分答案)

    [CodePlus 2017 11月赛&洛谷P4058]木材 Description 有 n棵树,初始时每棵树的高度为 Hi ,第 i棵树每月都会长高 Ai.现在有个木料长度总量为 S的订单, ...

随机推荐

  1. PXC中的GTIDs

    基本环境:PXC 5.7.19 Row+Gtid,3节点 一.Galera GTID vs MySQL GTID 1.1.Galera GTID vs MySQL GTID Both kinds of ...

  2. js获取当前日期时间“yyyy-MM-dd HH:MM:SS”

    获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS” 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 function getNowFormatDat ...

  3. ubuntu 禁用 nouveau 方法

    (1)直接移除这个驱动(备份出来) $ mv /lib/modules/4.4.0-31-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/ ...

  4. media属性

    media=“screen”是什么意思?? media 属性规定目标 URL 是为什么类型的媒介/设备进行优化的. 该属性用于规定目标 URL 是为特殊设备(比如 iPhone).语音或打印媒介设计的 ...

  5. .Net Core中使用RabbitMQ

    (1).引入依赖 RabbitMQ.Client (2).编写发布者代码 var connectionFactory = new ConnectionFactory() { HostName=&quo ...

  6. 五、regularized线性回归练习(转载)

    转载链接:http://www.cnblogs.com/tornadomeet/archive/2013/03/17/2964515.html 前言: 本节主要是练习regularization项的使 ...

  7. COM口总是有惊叹号怎么办

    现在用win8或者win8.1的人越来越多,搞开发的COM口是离不开的我们用转串口芯片时总会出现COM口有惊叹号的情况,这样我们的设备是无法正常使用的,那要怎么办呢? 方法: 想改成上图这样没有惊叹号 ...

  8. ubuntu 下 teamview 取消自动启动 autostart

    sudo teamviewer daemon disable

  9. iframe传递参数问题

    在页面中嵌入了iframe,如果需要传递参数到iframe中 1.通过将参数嵌入到url中,在iframe中使用${param.xxx}可以获取 2.通过将参数存入到session中,在iframe中 ...

  10. android测试点整理

    Android的功能测试点 安装\卸载 App具体功能点 联网(默认的联网方式是什么?Wifi orSim卡? 网络切换是否有相应的提示说明? 飞行模式) 程序进入输入功能时,是否正常弹出键盘;键盘是 ...