1238:一元三次方程求解 2020-12-27

简介: 1238:一元三次方程求解 2020-12-27

1238:一元三次方程求解

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。

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

【输入】

一行,包含四个实数a,b,c,d,相邻两个数之间用单个空格隔开。

【输出】

一行,包含三个实数,为该方程的三个实根,按从小到大顺序排列,相邻两个数之间用单个空格隔开,精确到小数点后2位。

【输入样例】

1.0 -5.0 -4.0 20.0

【输出样例】

-2.00 2.00 5.00

1. #include <stdio.h>
2. #include <iostream>
3. #define N 100002
4. using namespace std;
5. double a,b,c,d,x1,x2,midx;
6. double jg(double x) {
7.  return a*x*x*x+b*x*x+c*x+d;
8. }
9. int main(int argc, char *argv[])
10. {
11.   scanf("%lf %lf %lf %lf",&a,&b,&c,&d);
12.   for(int i=-100;i<=100;i++){
13.     x1=i;
14.     x2=x1+1;
15.     if(jg(x1)==0) printf("%.2lf ",x1);
16.     else if(jg(x1)*jg(x2)<0){
17.       while(x2-x1>=0.001){
18.         midx=(x1+x2)/2;
19.         if(jg(x1)*jg(midx)<=0)x2=midx;
20.         else x1=midx;
21.       }
22.       printf("%.2lf ",x1);
23.     }
24.   }
25.   return 0;
26. }

 

相关文章
|
9月前
|
设计模式 存储
「全网最细 + 实战源码案例」设计模式——装饰者模式
装饰者模式(Decorator Pattern)是一种结构型设计模式,通过“包装”现有对象来为其添加额外功能,而无需修改原有代码。它通过创建装饰类来扩展对象的功能,而非继承。该模式由抽象构件、具体构件、抽象装饰者和具体装饰者组成,允许在运行时动态组合功能。穿衣服的例子很好地解释了装饰者模式:你可以根据需要一层层添加衣物,如毛衣、夹克和雨衣,每件衣物都扩展了基本行为,但不是你的一部分,可以随时脱掉。 优点包括灵活性、避免子类爆炸和符合开闭原则;缺点是可能增加复杂性和难以理解。适用于希望在不修改代码的情况下为对象新增行为的场景,尤其当继承难以实现或不可行时。
149 15
|
11月前
|
JavaScript 前端开发
事件委托
【10月更文挑战第29天】事件委托是JavaScript中一种重要的事件处理机制,它能够有效地提高事件处理的效率,减少内存占用,尤其适用于处理大量具有相似行为的DOM元素的事件。
|
机器学习/深度学习 存储 算法
CSP-J第二轮试题-2020年-1.2题
CSP-J第二轮试题-2020年-1.2题
|
机器学习/深度学习 数据可视化 算法
「精挑喜欢」Matlab被禁就束手无策? 太多数值分析软件可选。
「精挑喜欢」Matlab被禁就束手无策? 太多数值分析软件可选。
|
Ubuntu 网络安全
Ubuntu防火墙使用
Ubuntu防火墙使用
187 0
|
存储 缓存 安全
【Spring专题】「技术原理」Spring Security的核心功能和加载运行流程的原理分析
【Spring专题】「技术原理」Spring Security的核心功能和加载运行流程的原理分析
484 0
【Spring专题】「技术原理」Spring Security的核心功能和加载运行流程的原理分析
|
开发框架 运维 监控
映客高级技术总监黄继:7天从开发到上线,云上高效运维实践与探索
2021云栖大会上,映客高级技术总监黄继为大家阐述映客团队如何在较短时间内快速完成业务的开发,同时还要保障业务上线后的稳定运行、快速扩展、访问质量和数据化运营等方面的经验。
映客高级技术总监黄继:7天从开发到上线,云上高效运维实践与探索
|
Serverless
重磅推出Serverless云开发新手加油包,让你上线无忧!
云开发平台推出免费体验获得新手加油包活动,体验最领先的Serverless云开发模式,立即领取无门槛代金券加油包。
49129 0
重磅推出Serverless云开发新手加油包,让你上线无忧!
|
前端开发 JavaScript API
Fusion Next 之 Form 组件的设计之路
前端的Form 表单主要用于解决数据获取、数据校验、数据赋值 这三大类问题。这篇文章里面的提供的解决方案能够比较完美的用在 React 框架上,但是解决问题的思路相信应该是可以使用于任何框架语言。 中后台的表单组件已经不仅仅有 input 和 select,可能还扩展到 范围选择器、日期选择器 等...
2548 0