码迷,mamicode.com
首页 > 其他好文 > 详细

二分法求三次方程的根

时间:2015-09-14 08:15:41      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:

二分法求根

#include "stdio.h"
#define f(x) a*x*x*x+b*x*x+c*x+d

int main()
{
    freopen("in.txt", "r", stdin);
    int a, b, c, d;
    double x1, x2, x, y1, y2, y;
    while (scanf("%d%d%d%d", &a, &b, &c, &d) != EOF)
    {
        x1 = -100;
        x2 = 100;
        x = (x1+x2) / 2;
        while ((x2-x1) > 0.01)
        {
            y1 = f(x1);
            y2 = f(x2);
            y = f(x);
            if (y1 == 0)
            {
                x = x1;
                break;
            }
            if (y2 == 0)
            {
                x = x2;
                break;
            }
            if (y1*y < 0)
            {
                x2 = x;
                x = (x1+x2) / 2;
            }
            else
            {
                x1 = x;
                x = (x1+x2) / 2;
            }
        }
        printf("%.f\n", x);
    }
    return 0;
}

 

二分法求三次方程的根

标签:

原文地址:http://www.cnblogs.com/rain-1/p/4806136.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!