C#求解一元二次方程的根

C#求解一元二次方程的根

数学知识

方程 a x 2 + b x + c = 0 ax^2 + bx + c = 0 ax2+bx+c=0 的解有以下几种情况:

  1. a = 0 a = 0 a=0 b = 0 b = 0 b=0 ,无解。
  2. a = 0 a = 0 a=0 b ≠ 0 b \neq 0 b=0 ,有一个实数解: x = − c b x = -\frac c b x=bc.
  3. Δ = b 2 − 4 a c = 0 \Delta = b^2 - 4ac = 0 Δ=b24ac=0,有两个相等的实数根: x 1 = x 2 = − b 2 a x_1 = x_2 = -\frac{b}{2a} x1=x2=2ab.
  4. Δ = b 2 − 4 a c > 0 \Delta = b^2 - 4ac > 0 Δ=b24ac>0,有两个不相等的实数根: x 1 = − b + b 2 − 4 a c 2 a , x 2 = − b − b 2 − 4 a c 2 a x_1 = \frac{-b + \sqrt{b^2 - 4ac}}{2a},x_2 = \frac{-b - \sqrt{b^2 - 4ac}}{2a} x1=2ab+b24ac ,x2=2abb24ac .
  5. Δ = b 2 − 4 a c < 0 \Delta = b^2 - 4ac < 0 Δ=b24ac<0,有两个不相等的复数解: x 1 = − b 2 a + 4 a c − b 2 2 a i , x_1 = -\frac{b}{2a} + \frac{4ac-b^2}{2a}\mathrm{i}, x1=2ab+2a4acb2i,

代码实现

using System;

namespace T
{
    class EquationSolve
    {
        static void Main(string[] args)
        {
            var a = double.Parse(Console.ReadLine());
            var b = double.Parse(Console.ReadLine());
            var c = double.Parse(Console.ReadLine());
            var d = b * b - 4 * a * c;
            if (a == 0 && b == 0)
            {
                Console.WriteLine("无解");
            } else if (a == 0) 
            {
                Console.WriteLine($"有一个实根:x={-c/b:F}");
            } else if (d == 0)
            {
                Console.WriteLine($"有两个相同的实根:x1=x2={-b/(2*a):F}");
            } else if (d > 0)
            {
                Console.WriteLine($"有两个不同的实根:x1={(-b+Math.Sqrt(d))/(2*a):F},x2={(-b-Math.Sqrt(d))/(2*a):F}");
            } else
            {
                Console.WriteLine("有两个不同的复数解:x1={0:F}+{1:F}i,x2={0:F}-{1:F}i", -b / (2 * a), Math.Sqrt(-d) / (2 * a));
            }
        }
    }
}
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值