zoukankan      html  css  js  c++  java
  • 一元三次方程

     1 #include<cstdio>
     2 #define zx author
     3 using namespace std;
     4 double a,b,c,d;
     5 double f(double x)
     6 {
     7     return a * x * x * x + b * x * x + c * x + d;
     8 }
     9 void erfen(double l,double r)
    10 {
    11     double mid = (l + r) / 2;
    12     
    13     if(r - l <= 0.01)
    14     {
    15         if(f(l) * f(r) < 0)
    16         {
    17         
    18             printf("%.2lf ",mid);
    19         }
    20         return;
    21     }
    22         erfen(l,mid);
    23         erfen(mid,r);
    24 
    25 }
    26 int main()
    27 {
    28     freopen("equation.in","r",stdin);
    29     freopen("equation.out","w",stdout);
    30     scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
    31     erfen(-100,100);
    32     return 0;
    33 }

    *****二分每一段寻找答案,根据提示,找到小于0的区间就可以继续搜索啦。

    一元三次方程求解

    Equation.pas/cpp

    题目描述:

    形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的

    系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100

    至100 之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这

    三个实根(根与根之间留有空格),并精确到小数点后4 位。

    提示:记方程f(x)=ax3+bx2+cx+d,若存在2 个数x1 和x2,且x1<x2,

    f(x1)*f(x2)<0,则在(x1,x2)之间一定有一个根。

    输入格式:

    一行四个实数a,b,c,d

    输出格式:

    从小到大输出三个根,每个根保留两位小数,中间用空格隔开。

    样例:

    输入:1 -5 -4 20

    输出:-2.00 2.00 5.00

  • 相关阅读:
    面向对象
    通信编程
    系统编程和单片机编程思维的改变
    代码是设计出来的
    好的代码设计
    通信传输协议数据包的独门绝技使用-----------共用体的使用
    $|^|z||/a|/l
    eubacteria|endosymbiosis|基因转移
    ctDNA|endosymbiosis
    mtDNA|ctDNA|cpDNA|
  • 原文地址:https://www.cnblogs.com/rax-/p/9090222.html
Copyright © 2011-2022 走看看