50分求助,红色!!!
查看原帖
50分求助,红色!!!
969131
huangze21楼主2023/8/16 08:40
#include<bits/stdc++.h>
#include<cmath>
using namespace std;

double f(int a, int b, int c, int d, double x){
	return a*pow(x,3)+b*pow(x,2)+c*x+d;
}
int main(){
	int a,b,c,d;
	cin >> a >> b >> c >> d;
	for(int i=-100;i<=100;i++){
		if(f(a,b,c,d,i)==0){
			double j = i;
			printf("%.2f ",j);
		}
		else if(f(a,b,c,d,i)*f(a,b,c,d,i+1)<0){
			double j=i,r=i+1.00;
			while(f(a,b,c,d,j)*f(a,b,c,d,r)<0 && r-j>=0.01){
				double m=(j+r)/2;
				if(f(a,b,c,d,j)*f(a,b,c,d,m)<0){
					r=m;
				}
				else{
					j=m;
				}
			}
			printf("%.2f",j);
		}
	}

} 
2023/8/16 08:40
加载中...