求助,为啥结果都是0.00
查看原帖
求助,为啥结果都是0.00
508075
小垃圾1楼主2023/3/26 21:26
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
using namespace std;

double a, b, c, d;

double f(double x){
	return a*x*x*x + b*x*x + c*x + d;
} 

void find(double l, double r){
	if(r-l < 0.001){
		printf("%.2f ", l);
		return ;
	}
	
	double mid = (l+r)/2;
	if(f(mid) == 0)
	{
		printf("%.2f ", mid);
		return ;	
	} 
	else if(f(l)*f(mid) < 0) find(l, mid);
	else find(mid, r);
}

int main(){
	cin >> a >> b >> c >> d;
	int cnt = 0;
	for(int i = -100; i < 100, cnt != 3; ++i){
		if(f(i) == 0){
			printf("%.2f ", i);
			cnt++;
		}	
		else if(f(i)*f(i+1) < 0){
			find(i, i+1);
			cnt++;
		}
	}
	return 0; 
}
2023/3/26 21:26
加载中...