怎么才过2个点???
查看原帖
怎么才过2个点???
648053
wh_1024楼主2022/8/9 09:57
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define f(i,j,n) for(int i=j;i<=n;i++)
const ll mx=1e12,mi=-1e12,N=10000000;
double a,b,c,d;
double def(double x)
{
	double y=((a*x+b)*x+c)*x+d;
	return y;
}
int main(){
	cin>>a>>b>>c>>d;
	for(double i=-100;i<=100;i++)
	{
		double f1=def(i),f2=def(i+1);
		if(f1*f2<=0)
		{
			if(f1==0)
			printf("%.2lf ",i);
			else if(f2==0)
			{
			printf("%.2lf ",i+1);
			i++;
			}
			else
			{
				double l=i,r=i+1;
				double mid;
				while(r-l>1e-3)
				{
					mid=(l+r)/2.0;
					if(def(l)*def(r)<=0)r=mid;
					else l=mid;
				}
				printf("%.2lf ",mid);
			}
		}
	}
	return 0;
}
2022/8/9 09:57
加载中...