- 分享
8/14思路
- @ 2024-8-14 14:55:39
T3
ax^2 + bx + c = 0 (令a > 0,若<0,同乘-1取反) Δ = b^2 - 4ac
较大的根 =
分情况讨论:
-
无实根 Δ < 0,输出 NO
-
有实根 Δ ≥ 0
(1) Δ = 0
x = -b/2a,若-b | 2a,输出结果即可,若无法整除,约分后输出
(2) Δ > 0
这里要讨论 的情况:
① Δ 是完全平方数,开方后 -b 得到 t,判断 t | 2a,能整除直接输出,否则约分后输出
② Δ不是完全平方数,尝试化简 Δ为 的形式,答案分为两部分:,注意约分,若b为0,不需要输出+号,否则是两部分相加
两个重点:
- 根据gcd(a,b)是否等于1来判断是否可以约分
- 对于Δ不是完全平方数的情况,如何提取k?数据范围很小,直接暴力找即可,代码如下:
// 32 = 16 * 2
int k, r;
for (int i = sqrt(delta); i >= 1; i--)
{
if (delta % (i*i) == 0)
{
k = i;
r = delta / (i*i);
break;
}
}
1 条评论
-
gdy LV.MAX 无名 LV 1 SU @ 2024-8-14 17:38:08
in:
10 20 1 -19 5 -2 12 15 1 8 7 1 8 -8 -1 -11 0 -1 -7 -7 -2 -5 8 2 -8 -13 -1 -10 11 -1 -15 0out:
19/2+sqrt(341)/2 3+sqrt(66)/2 -1 -4+2*sqrt(6) 0 -7/2+sqrt(21)/2 -5/4+sqrt(89)/4 2+sqrt(42)/2 1 0
- 1