P1024 一元三次方程求解

题目描述:

给出一个简单的一元三次方程,要求三个解。

思路:

这些大佬们为何都用一些神奇的算法……还把这道题评为普及组难度……其实只要枚举就可以了,注意一下double精度。

这道题的代码可以比一些入门组的还要短……这道题其实应该在普及-难度

代码:

1
2
3
4
5
6
7
8
9
10
11
#include<bits/stdc++.h>
using namespace std;
double a,b,c,d;
int main(){
scanf("%lf%lf%lf%lf",&a,&b,&c,&d); // 输入
for(double i=-100;i<=100;i+=0.001){//枚举每个答案
if(fabs(i*i*i*a+i*i*b+i*c+d)<0.0001)//避免double精度错误
printf("%.02lf ",i);//两位小数输出
}
return 0;
}