洛谷:一元三次方程求解 题解

题目链接

思路:

没啥特殊的,就是枚举,俗话说的好:暴力出奇迹……

因为根是在 −100 到 100 之间,并且是精确到小数点后 2 位,我们也就要算到第 3 位,所以总共就 200000 个数,完全可以暴力。我们只需要在循环内算出值,判断是否合法即可。

这好像也不能叫思路

参考代码:

#include
using namespace std;
double a,b,c,d,a1,b1,c1,d1;// 题目要的数据是小数点后2位所以定义首先用double
int num;// num用来记录解的个数 因为一元三次方程只有三个解  解达到三个以后就break掉 减少多余循环
int main(){
	cin>>a>>b>>c>>d;
	for(double i=-100.00;i<=100.00;i+=0.001){// 最后结果保存两位数 所以这里i每次加0.001(n只有100所以暴不了)
		double l=i,r=i+0.001;
		if((a*l*l*l+b*l*l+c*l+d)*(a*r*r*r+b*r*r+c*r+d)<0)// 若存在两个数x1,x2且x1

你可能感兴趣的:(算法,c++,c语言)