75分,#2答案错误,求大神相助
查看原帖
75分,#2答案错误,求大神相助
1492018
noiiloveyou楼主2024/11/8 06:57
#include<bits/stdc++.h>
using namespace std;
double a,b,c,d,a1,a2,a3,tg,jjg,sum;
double f(double a,double b,double c,double d ,double x){
	return a*x*x*x+b*x*x+c*x+d;
}
int main(){
	cin>>a>>b>>c>>d;
	for(int i=-100;i<=100;i++){
		if(abs(f(a,b,c,d,i))<=0.005){
		        printf("%d.00 ",i);
		        sum++;
		}
			int j=i+1;
			tg=f(a,b,c,d,i)*f(a,b,c,d,j);
			if(tg<0){
			    a1=i;
				a2=j;
				while(1){
					a3=(a1+a2)/2.0;
					jjg=f(a,b,c,d,a3); 
					if(abs(jjg)<=0.005){
						printf("%.2f ",a3);
						sum++;
						break;
					}
					jjg*=f(a,b,c,d,a2);
					if(jjg<0){
						a1=a3;
					}
					else{
						a2=a3;
					}
				}
			}
			if(sum==3) return 0;
		}
	return 0;
} 
2024/11/8 06:57
加载中...