社区讨论
我觉得应该是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 条回复,欢迎继续交流。
正在加载回复...