题目链接: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;for (int x = -100; x <= 100; x++){x1 = x; x2 = x + 1;//确定根可能所在的区间 if (f(x1) == 0)printf("%.2f ", x1);      //考虑根在区间端点上的情况else if (f(x1)*f(x2)<0)//如果小于0,则确定根在区间[x1,x2]中
        {while (x2 - x1 >= 0.001)     //二分法确定根的值,由于要精确到小数点后2位,所以这里要算到第三位
            {xx = (x1 + x2) / 2;if ((f(x1)*f(xx)) <= 0)x2 = xx;else x1 = xx;}printf("%.2f ", x1);}}return 0;
}

2018-05-15

转载于:https://www.cnblogs.com/00isok/p/9039815.html

洛谷 [P1024]一元三次方程求解【二分答案】相关推荐

  1. 洛谷 P1024 一元三次方程求解 (暴力 or 二分 or 盛金公式)

    P1024 一元三次方程求解 题意 有形如:ax3+bx2+cx+d=0ax^3+bx^2+cx+d=0ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,da, ...

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

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

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

    不会二分就暴力计算 提示:记方程f(x)=0f(x)=0,若存在22个数x_1x1​和x_2x2​,且x_1<x_2x1​<x2​,f(x_1) \times f(x_2)<0f(x ...

  4. P1024 一元三次方程求解 牛顿迭代+盛金公式+二分+勘根定理

    P1024 一元三次方程求解 传送门 题目描述 有形如:ax^3+bx^2+cx^1+dx^0=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实 ...

  5. 洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA

    洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA 二分交费最多的一次的钱数 然后只将符合要求的边加入图中 如果到终点的最短路大于等于血量 或者直接起点不能到达终点 那么说明不符合要求 需要 ...

  6. 一元三次方程求解 -- 二分查找

    [NOIP2001 提高组] 一元三次方 题目描述 思路 code tag:数学,二分查找 题目链接:洛谷P1024: [NOIP2001 提高组] 一元三次方 题目描述 思路 先对三次函数求导得到二 ...

  7. 一元三次方程求解-二分

    一元三次方程求解 题目描述 链接:https://ac.nowcoder.com/acm/problem/16694 来源:牛客网 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该 ...

  8. P1024 一元三次方程求解(递归式二分)

    整理的算法模板合集: ACM模板 我们判断两点(x)之间是否有根的依据是是否存在f(x)∗f(y)<0f(x) * f(y)<0f(x)∗f(y)<0 然后由于题目中说根于根之间的差 ...

  9. NOIP 2001 一元三次方程求解(二分||盛金公式)

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

最新文章

  1. ls命令显示结果图解
  2. jsp页面发生异常跳转到友好页面
  3. javascript 数组以及对象的深拷贝方法
  4. BugKuCTF 杂项 眼见非实(ISCCCTF)
  5. 送计算机教授教师节礼物,教师节送教授什么礼物好
  6. 跟我一起学.NetCore之自定义配置源-热更新-对象绑定
  7. 如何借助Kubernetes实现持续的业务敏捷性
  8. 算法设计与分析——贪心算法——单个出水口打水问题
  9. 当前计算机无法连接,win7系统无法连接wifi提示此计算机当前已将连接限制为xxx的解决方法...
  10. “约见”面试官系列之常见面试题第九篇vue实现双向绑定原理(建议收藏)
  11. 【MOSS】快速调试Sharepoint站点
  12. es6 async函数的实现原理
  13. 求职者:推销自己的四大妙招
  14. php模拟登陆青果教务系统
  15. 能测试护肤品成分的软件,查化妆品成分的app
  16. Oracle 锁表查询
  17. 软考和 PMP考哪个比较好?各自的价值是什么?
  18. 志愿模板-大学生寒暑假社会实践报告/企业实习报告模板
  19. 2018年上海交通大学数学建模竞赛暑期夏令营讲课课件(完整版)
  20. C/C++ 中野指针产生的问题

热门文章

  1. 什么是流量劫持,如何防止流量劫持?
  2. 德国Renusol进军南非市场 瞄准屋顶光伏
  3. 深入浅出Netty之四 Client请求处理
  4. java真的是值传递么?
  5. 一个简单的apache cgi-bin
  6. vc开发soap客户端(方式一)
  7. 分析外星人计算Pi的程序
  8. RDC Lent ifm IP Analysis Exercise
  9. world scientific is the journal to follow
  10. spring boot 菜鸟教程学习:spring是一个超级大工厂能够管理java对象(bean)和他们之间的关系(依赖注入)