根本不用二分,十行代码暴力枚举就可以了。
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a, b, c, d;
cin >> a >> b >> c >> d;
for (double i = - 100; i <= 100; i += 0.0001) {
double left = a * i * i * i + b * i * i + c * i + d;
if (left < 0.0001 && left > -0.0001) cout << fixed << setprecision(2) << i << " ";
}
return 0;
}
建议降成红题