求一元二次方程(ax^2+bx+c)的根

  这几天有个中学生问我怎么求一元二次方程的根,我一下子还真傻了,不知道从何下手, 那时候我记得我永远都记不住公式,考试的时候花了大把时间还去推算公式,结果推算出来的公式经常是少了正负号。这次又去推算公式,弄出来之后,

结果那位同学说这个公式好面熟,在书上找出来了,我被BS了一把,哎........

闲来无聊,写写代码打发时间。干脆把把代码写到博客上来了,我专门写了一个程序给他看。那位同学他说挺方便的,还说这个程序做题目做得很快。考试时能用就好了,可以节约很多时间。汗.....

我这不是害了他嘛,赶紧收回来。

 

一元二次方程的一般形式: ax^2+bx+c=0, (a≠0)  

解一元二次方程的基本思想是通过“降次”将它化为两个一元一次方程。

一元二次方程有四种解法:   1、开平方法;2、配方法;3、公式法;4、因式分解法。

具体怎么解就不多说了,直接上代码:

#include  < iostream.h >
#include 
< math.h >

int  solution( double  paraA, double  paraB, double  paraC, double &  x1, double &  x2)
{    
    
// delta = b2-4ac
     int  count;
    
double  delta  =  paraB * paraB  -   4   *  paraA  *  paraC;
    
if (delta  >   0 )     // 具有二个解
    {
        
// 根据二元一次求解公式计算出解
        x1  =  (( - paraB)  +  sqrt(delta))  /   2   *  paraA;
        x2 
=  (( - paraB)  -  sqrt(delta))  /   2   *  paraA;
        count 
=   2 ;
    }
    
else   if (delta  ==   0 )
    {
        
// 根据二元一次求解公式计算出解
        x1  =  ( - paraB)  /   2   *  paraA;
        count 
=   1 ;
    }
    
else
    {
        count 
=   0 ;
    }
    
return  count;
}

int  main()
{
    
double  a,b,c;
    
double  x,y;
    cout 
<<   " 请输入二元一次方程(ax2+bx+c)的三个参数 " << endl;
    cin 
>>  a;
    cin 
>>  b;
    cin 
>>  c;

    cout 
<<   " a= "   <<  a  << " ,b= "   <<  b  << " ,c= "   << c << endl;
    
int  count  =  solution(a,b,c,x,y);
    
if (count  ==   0 )
    {
        cout 
<<   " 此方程无解 " << endl;
    }
    
else   if (count  ==   1 )
    {
        cout 
<<   " 此方程具有一个解: x1= "   <<  x  <<  endl;
    }
    
else   if (count  ==   2 )
    {
        cout 
<<   " 此方程具有二个解: x1= "   <<  x  <<   " ;x2= "   <<  y  <<  endl;
    }
    
else
    {
        cout 
<<   " 此方程异常 "   <<  endl;
    }

    
return   1 ;
}

基本上就这样了!Happy weekend!

 

转载于:https://www.cnblogs.com/repository/archive/2010/11/13/1876499.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值