Luogu P1024 一元三次方程求解 题解
程序员文章站
2022-03-02 23:03:56
...
Luogu P1024 一元三次方程求解
乍一看,不会,在仔细一看,不就枚举嘛
50分代码:
#include<stdio.h>
using namespace std;
int a,b,c,d;
double js(int x){
double ret;
ret=(double)a*x/1000*x/1000*x/1000;
ret+=(double)b*x/1000*x/1000;
ret+=(double)c*x/1000;
ret+=(double)d;
return ret;
}
double ans[10];
int cnt;
int main(){
scanf("%d%d%d%d",&a,&b,&c,&d);
for(int i=-100000;i<=100000;i++){
if(js(i)<0&&js(i+1)>0)ans[cnt++]=i/1000.0;
if(js(i)>0&&js(i+1)<0)ans[cnt++]=i/1000.0;
if(js(i)==0)ans[cnt++]=i/1000.0;
}
for(int i=0;i<cnt;i++){
printf("%.2lf ",ans[i]);
}
return 0;
}
调试下立马发现问题:
一行,44个实数A,B,C,DA,B,C,D。
#include<stdio.h>
using namespace std;
double a,b,c,d;
double js(int x){
double ret;
ret=(double)a*x/1000*x/1000*x/1000;
ret+=(double)b*x/1000*x/1000;
ret+=(double)c*x/1000;
ret+=(double)d;
return ret;
}
double ans[10];
int cnt;
int main(){
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
for(int i=-100000;i<=100000;i++){
if(js(i)<0&&js(i+1)>0)ans[cnt++]=i/1000.0;
if(js(i)>0&&js(i+1)<0)ans[cnt++]=i/1000.0;
if(js(i)==0)ans[cnt++]=i/1000.0;
}
for(int i=0;i<cnt;i++){
printf("%.2lf ",ans[i]);
}
return 0;
}
上一篇: Luogu P1024 一元三次方程求解 解题报告
下一篇: 【洛谷p1024】一元三次方程求解