这道题吧,它分两个解法,一个是规规矩矩用算法,另一个是暴力枚举。因为俗话说的好,“算法不争气,暴力出奇迹”,没学过二分的就抄歪解吧。
1.暴力算法
简单粗暴,一个循环,遍历从-100到100之间的所有数(包括两位小数),就是-100 -99.99 -99.98,一共两万个数,时间充裕(幸好是数据给的小啊),然后挨个判断是不是符合他给的方程式,而且不能是零,这样方程就没意义了,狗三个数就结束,符合就输出。
到时候教练问起来,就说这道题贼拉简单,循环就可以了。
#include<bits/stdc++.h>
using namespace std;
int num=0;
double a,b,c,d;
int main(){
cin >> a >> b >> c >> d;
for(double i=-100.00;i<=100.00;i+=0.001){
if(num==3)return 0;
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&&i){
num++;
cout << fixed &