蓝桥杯 算法训练 一元三次方程求解
2017-11-26 17:42
316 查看
算法训练 一元三次方程求解
时间限制:1.0s 内存限制:256.0MB
问题描述
有形如:ax3+bx2+cx+d=0
这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求三个实根。。
输入格式
四个实数:a,b,c,d
输出格式
由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位
样例输入
1 -5 -4 20
样例输出
-2.00 2.00 5.00
数据规模和约定
|a|,|b|,|c|,|d|<=10
时间限制:1.0s 内存限制:256.0MB
问题描述
有形如:ax3+bx2+cx+d=0
这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求三个实根。。
输入格式
四个实数:a,b,c,d
输出格式
由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位
样例输入
1 -5 -4 20
样例输出
-2.00 2.00 5.00
数据规模和约定
|a|,|b|,|c|,|d|<=10
#include<iostream> #include<cmath> #include<iomanip> using namespace std; int main() { double a,b,c,d,i; cin >>a>>b>>c>>d; //先用枚举初步确定三个根的范围, //比如f[i]*f[i+1]<0则可知道[i,i+1]之间有一个根, //然后再对于每个范围内二分求根。 for(i=-100;i<=100;i+=0.01){ double x1=i-0.005,x2=i+0.005; if((x1*x1*x1+b/a*x1*x1+c/a*x1+d/a)*(x2*x2*x2+b/a*x2*x2+c/a*x2+d/a)<0) cout <<fixed<<setprecision(2)<<i<<" "; } return 0; }
相关文章推荐
- 算法训练 最短路 蓝桥杯
- Java-蓝桥杯-算法训练 图形显示
- 蓝桥杯 ALGO-83 算法训练 阶乘 java版
- 蓝桥杯-算法训练-区间k大数查询
- 蓝桥杯算法训练_2的次幂表示+前缀表达式+Anagrams问题+出现次数最多的整数
- 蓝桥杯——算法训练 分解质因数
- EXCEL 单变量求解 解一元三次方程
- 蓝桥杯 ALGO-64 算法训练 大小写判断
- 蓝桥杯 ALGO-86 算法训练 矩阵乘法
- 蓝桥杯 ALGO-79 算法训练 删除数组零元素
- 蓝桥杯算法训练——最短路(SFPA)
- 蓝桥杯 - 算法训练 字串统计 C语言实现
- 蓝桥杯 -算法训练 区间k大数查询 java算法
- 蓝桥杯 算法训练 5-1最小公倍数
- nyoj 1178 && hdu 5105 Math Problem 求解一元二次三次方程
- 蓝桥杯 算法训练:表达式计算 中缀表达式变后缀表达式
- 蓝桥杯-算法训练-ALGO1-区间k大数查询
- 蓝桥杯联系系统算法训练——比较大小
- 算法训练 比较字符串 (蓝桥杯C++)
- 蓝桥杯—— 算法训练 数对