记录编号 |
541894 |
评测结果 |
AAAAA |
题目名称 |
[NOIP 2001]一元三次方程求解 |
最终得分 |
100 |
用户昵称 |
能流零念 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.002 s |
提交时间 |
2019-09-17 21:15:08 |
内存使用 |
13.66 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<iomanip>
using namespace std;
double a,b,c,d;
double f(double x)
{
return a*x*x*x+b*x*x+c*x+d;
}
void work(int a)
{
double left=a,right=a+1,mid;
while(1)
{
mid=(left+right)/2;
if((right-left)<1e-5)
{
printf("%.2f ",right);
break;
}
if(f(mid)==0)
{
printf("%.2f ",mid);
break;
}
if(f(left)*f(mid)<0)
right=mid;
else
left=mid;
}
}
int main()
{
freopen("3cfc.in","r",stdin);
freopen("3cfc.out","w",stdout);
cin>>a>>b>>c>>d;
for(int i=-100;i<100;i++)
{
if(f(i)==0)
{
printf("%.2f ",(double)i);
continue;
}
if(f(i)*f(i+1)<0)
{
work(i);
}
}
return 0;
}