社区讨论
50分求调
P1024[NOIP 2001 提高组] 一元三次方程求解参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mko41o2s
- 此快照首次捕获于
- 2026/01/21 22:20 上个月
- 此快照最后确认于
- 2026/01/22 17:56 上个月
CPP
#include<bits/stdc++.h>
using namespace std;
double a,b,c,d;
double f(double x){
return a*pow(x,3)+b*pow(x,2)+c*x+d;
}
double bisearch(double left,double right){
if(!f(left)){
return left;
}
if(f(left)*f(right)<0){
while(right-left>1e-3){
double mid=(left+right)/2;
if(f(mid)*f(right)<0){
left=mid;
}
else{
right=mid;
}
}
}
return 101;
}
int main(){
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
for(double i=-100;i<=99;i++){
double y1=bisearch(i,i+1);
if(f(y1)<1e-6) printf("%.2lf ",y1);
}
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...