用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) 编辑 收藏 举报