求助50分。有没有大佬来看一看,第2个点和第4个点WA
查看原帖
求助50分。有没有大佬来看一看,第2个点和第4个点WA
40968
sishuinianhua楼主2024/10/29 23:30
#include<bits/stdc++.h>
using namespace std;
double a,b,c,d;
double f(int x){
	return x*x*x*a+x*x*b+x*c+d;
}
int main(){
	int count=0;
	cin>>a>>b>>c>>d;
	if(!f(100)){
		printf("100.00 ");
		count++;
	}
	for(float i=-100.00;i<100.00;i++){
		if(count==3){
			break;
		}
		if(!f(i)){
			printf("%.2f ",i);
			count++;
			continue;
		}
		if(f(i)*f(i+1)<0){
			double xl=i,xr=i+1,x;
			int flag=0;
			while(xr-xl>=0.001){
				x=(xl+xr)/2;
				if(!f(x)){
					printf("%.2f ",x);
					count++;
					flag=1;
					break;
				}
				if(f(x)*f(xl)<0){
					xr=x;
				}else{
					xl=x;
				}
			}
			if(flag==0)printf("%.2f",x);
		}
	}
	return 0;
}

2024/10/29 23:30
加载中...