CSP-J系列【2023】P9750 [CSP-J 2023] 一元二次方程题解

题目背景

众所周知,对一元二次方程 ax2+bx+c=0(a=0),可以用以下方式求实数解:

  • 计算 Δ=b2−4ac,则:
    1. 若 Δ<0,则该一元二次方程无实数解。
    2. 否则 Δ≥0,此时该一元二次方程有两个实数解 x1,2​=2a−b±Δ​​。

例如:

  • x2+x+1=0 无实数解,因为 Δ=12−4×1×1=−3<0。
  • x2−2x+1=0 有两相等实数解 x1,2​=1。
  • x2−3x+2=0 有两互异实数解 x1​=1,x2​=2。

在题面描述中 a 和 b 的最大公因数使用 gcd(a,b) 表示。例如 12 和 18 的最大公因数是 6,即 gcd(12,18)=6。

题目描述

现在给定一个一元二次方程的系数 a,b,c,其中 a,b,c 均为整数且 a=0。你需要判断一元二次方程 ax2+bx+c=0 是否有实数解,并按要求的格式输出。

在本题中输出有理数 v 时须遵循以下规则:

  • 由有理数的定义,存在唯一的两个整数 p 和 q,满足 q>0,gcd(p,q)=1 且 v=qp​。

  • 若 q=1,则输出 {p},否则输出 {p}/{q},其中 {n} 代表整数 n 的值;

  • 例如:

    • 当 v=−0.5 时,p 和 q 的值分别为 −1 和 2,则应输出 -1/2
    • 当 v=0 时,p 和 q 的值分别为 0 和 1,则应输出 0

对于方程的求解,分两种情况讨论:

  1. 若 Δ=b2−4ac<0,则表明方程无实数解,此时你应当输出 NO

  2. 否则 Δ≥0,此时方程有两解(可能相等),记其中较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值