Climber.pI的OI之路

Through the darkest dark,may we see the light.

NOIP 2001 一元三次方程求解

可以利用二分法或者枚举法求解,需要注意的是浮点误差,以及系数不一定为整数.
 1#include<stdio.h>
 2double a, b, c, d;
 3double abs (double n) {return (n > 0? n : - n;}
 4double f(double x) {return (((a*x)+b)*x+c)*x+d;}
 5int main()
 6{
 7    int k = 0;
 8    scanf("%lf%lf%lf%lf"&a, &b, &c, &d);
 9    for (double i = -10000; i < 10001; i++)
10    {
11        if (abs(f(i/100)) < 1e-8)
12        {
13            k++; printf("%.2lf"double(i/100));
14            if (k < 3) printf(" ");
15                else printf("\n");
16            i += 10;
17        }

18    }

19}

20

posted on 2010-09-11 22:18 Climber.pI 阅读(440) 评论(0)  编辑 收藏 引用 所属分类: 模拟


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理