洛谷 [P1024]一元三次方程求解【二分答案】
题目链接: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 -5 -4 20
-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]一元三次方程求解【二分答案】相关推荐
- 洛谷 P1024 一元三次方程求解 (暴力 or 二分 or 盛金公式)
P1024 一元三次方程求解 题意 有形如:ax3+bx2+cx+d=0ax^3+bx^2+cx+d=0ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,da, ...
- [NOIP2001] 提高组 洛谷P1024 一元三次方程求解
题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...
- 洛谷 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 ...
- P1024 一元三次方程求解 牛顿迭代+盛金公式+二分+勘根定理
P1024 一元三次方程求解 传送门 题目描述 有形如:ax^3+bx^2+cx^1+dx^0=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实 ...
- 洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA
洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA 二分交费最多的一次的钱数 然后只将符合要求的边加入图中 如果到终点的最短路大于等于血量 或者直接起点不能到达终点 那么说明不符合要求 需要 ...
- 一元三次方程求解 -- 二分查找
[NOIP2001 提高组] 一元三次方 题目描述 思路 code tag:数学,二分查找 题目链接:洛谷P1024: [NOIP2001 提高组] 一元三次方 题目描述 思路 先对三次函数求导得到二 ...
- 一元三次方程求解-二分
一元三次方程求解 题目描述 链接:https://ac.nowcoder.com/acm/problem/16694 来源:牛客网 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该 ...
- P1024 一元三次方程求解(递归式二分)
整理的算法模板合集: ACM模板 我们判断两点(x)之间是否有根的依据是是否存在f(x)∗f(y)<0f(x) * f(y)<0f(x)∗f(y)<0 然后由于题目中说根于根之间的差 ...
- NOIP 2001 一元三次方程求解(二分||盛金公式)
题目描述 有形如:ax3+bx2+cx+d=0这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝 ...
最新文章
- ls命令显示结果图解
- jsp页面发生异常跳转到友好页面
- javascript 数组以及对象的深拷贝方法
- BugKuCTF 杂项 眼见非实(ISCCCTF)
- 送计算机教授教师节礼物,教师节送教授什么礼物好
- 跟我一起学.NetCore之自定义配置源-热更新-对象绑定
- 如何借助Kubernetes实现持续的业务敏捷性
- 算法设计与分析——贪心算法——单个出水口打水问题
- 当前计算机无法连接,win7系统无法连接wifi提示此计算机当前已将连接限制为xxx的解决方法...
- “约见”面试官系列之常见面试题第九篇vue实现双向绑定原理(建议收藏)
- 【MOSS】快速调试Sharepoint站点
- es6 async函数的实现原理
- 求职者:推销自己的四大妙招
- php模拟登陆青果教务系统
- 能测试护肤品成分的软件,查化妆品成分的app
- Oracle 锁表查询
- 软考和 PMP考哪个比较好?各自的价值是什么?
- 志愿模板-大学生寒暑假社会实践报告/企业实习报告模板
- 2018年上海交通大学数学建模竞赛暑期夏令营讲课课件(完整版)
- C/C++ 中野指针产生的问题