二分在 2,4个点超时?
查看原帖
二分在 2,4个点超时?
1091535
hehe123313楼主2023/11/23 12:46
#include<iostream>
using namespace std;
double a,b,c,d;
double x1,x2,x3;
double fc(double  x)
{
	return a*x*x*x+b*x*x+c*x+d;
	
}
int main()
{
	cin>>a>>b>>c>>d;
	int num=0;
	for(double i=-100;i<=100;i++)
	{
		double l=i,r=i+1;
		if(num==3)
		break;
	if(fc(l)==0)
	{
	 printf("%.2f ",l);
	 num++;
	}
	if(fc(l)*fc(r)<0)
	{
		int h=0;
		while(l-r<0.001)
		{
			double mid=(l+r)/2;
			if(fc(mid)*fc(r)>0)
			r=mid;
			if(fc(mid)*fc(r)<0)
			l=mid;
			if(fc(mid)==0)
			{
				printf("%.2f\n",mid);
				h=1;
				num++;
			}
		}
		if(h==0)
		{
		printf("%.2f",l);
		num++;
		}
		
	}
	

	}
	return 0;
}
2023/11/23 12:46
加载中...