社区讨论

我觉得应该是find函数错了

P1024[NOIP 2001 提高组] 一元三次方程求解参与者 3已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@mi6v717l
此快照首次捕获于
2025/11/20 11:21
4 个月前
此快照最后确认于
2025/11/20 11:21
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;

double a,b,c,d,lx,f,fi,f1;

int find(double l,double r,double lx,double rx) {
	if((r-l)<0.01) return l;
	double m=(l+r)/2;
	double fm=a*m*m*m+b*m*m+c*m+d;
	if(lx*fm<0) find(l,m,lx,fm);
	if(fm*rx<0) find(m,r,fm,rx);
	if(fm==0) return m;
}

int main()
  {cin>>a>>b>>c>>d;
  lx=a*(-1000000)+b*(10000)+c*(-100)+d;
  f=lx;
  for(int i=-100;i<=100;i++)
    {f1=f;
	f=a*(i*i*i)+b*(i*i)+c*(i)+d;
    if(f*lx<0) {
    	lx=f;
		fi=find(i-1,i,f1,f);
		printf("%.2lf",fi);
    }
    if(f==0) {
        printf("%.2lf ",double(i));
        lx=lx*(-1);
    }
    }
 
 	
 }
我我我我我我我我我50分的原因我觉得是我的find函数出了错嗯,dalaolao帮我看看,

回复

8 条回复,欢迎继续交流。

正在加载回复...