用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()方法:計算指定數的開方。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM