DFS过不了,求助
查看原帖
DFS过不了,求助
87549
石哈哈楼主2021/9/16 15:04
#include<cstdio>
#include<cmath>
using namespace std;
float a,b,c,d;
float calculate(float x)
{
    return a*x*x*x+b*x*x+c*x+d;
}
void search(float l,float r)
{
    float mid = (l + r)/2;
    if (abs(l - r) <= 0.001) 
    {
        printf("%.2f\n",l);
        return ;
    }
    float o = calculate(l)*calculate(mid);
    if (calculate(l) == 0) printf("%.2f\n",l);
    if (calculate(mid) == 0) printf("%.2f\n",mid); 
    if ( o < 0)//三个根或者一个根
    {
        search(l,mid);
    }
    if (o > 0)//没有根或者两个根
    {
        search(mid,r);
    }
}
int main()
{
    scanf("%f,%f,%f,%f",&a,&b,&c,&d);
    for (int i = -100;i<100;i++)
    {
        if(calculate(i)*calculate(i+1)<=0)
        {
            search(i,i+1);
        }
    }
    return 0;
}
2021/9/16 15:04
加载中...