用c#求一元二次方程

题目:编一个程序,输入a 、b、c 的值,求出一元二次方程a*x*x+b*x+c=0的二个实数根。

我的思路:

我们都知道数学中求一元二次方程有很多方法:直接开方法、配方法、公式法、分解因式法等等,在这里我选择了公式法:

先判断此一元二次方程有没有解,判别式▲大于0则有2个实数根,等于0则有1个的实数根,小于0则没有实数根
再利用一元二次方程求根公式得到根值,具体代码如下:

         //取值
            Console.WriteLine("请输入a的值:");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入b的值:");
            int b = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入c的值:");
            int c = int.Parse(Console.ReadLine());

            //计算根
            double x1,x2;
            if (b * b - 4 * a * c > 0)
            {

                x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / 2 * a;
                x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / 2 * a;
                Console.WriteLine("一元二次方程{0}*x*x+{1}*x+{2}=0的根为:{3}\t{4}", a, b, c, x1, x2);
            }
            else if (b * b - 4 * a * c == 0)
            {
                x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / 2 * a;
                Console.WriteLine("一元二次方程{0}*x*x+{1}*x+{2}=0的根为:{3}", a, b, c, x1);
            }
            else
            {
                Console.WriteLine("一元二次方程{0}*x*x+{1}*x+{2}=0无解!", a, b, c);
            }
            
            Console.ReadLine();        
在这里很巧妙的运用了Sqrt()方法:计算指定数的开方。

posted on 2020-03-12 20:47  北冥道人骑鲲打代码  阅读(3305)  评论(0编辑  收藏  举报

导航