题目补充:
题目:给定一个一元二次方程 $ax^2 + bx + c = 0$,其中 $a \neq 0$,请使用你选择的编程语言(PHP, Python, JavaScript)来编写一个函数,该函数接受 $a$、$b$ 和 $c$ 作为参数,并返回该方程的根。如果方程有两个实根,则返回这两个根组成的数组;如果方程有一个重根,则返回包含该重根的单元素数组;如果方程没有实根(即判别式 $\Delta = b^2 - 4ac < 0$),则返回 null
或相应的错误消息。
PHP 示例代码:
<?php
function findRoots($a, $b, $c) {
$delta = $b * $b - 4 * $a * $c;
if ($delta < 0) {
return null; // 没有实根
} elseif ($delta == 0) {
$root = -$b / (2 * $a);
return [$root]; // 重根
} else {
$root1 = (-$b + sqrt($delta)) / (2 * $a);
$root2 = (-$b - sqrt($delta)) / (2 * $a);
return [$root1, $root2]; // 两个不同的实根
}
}
// 测试用例
$a = 1;
$b = -3;
$c = 2;
$roots = findRoots($a, $b, $c);
if ($roots !== null) {
echo "方程的根是: ";
foreach ($roots as $root) {
echo $root . " ";
}
echo "\n";
} else {
echo "方程没有实根。\n";
}
// 更多相关内容,请访问码小课网站。
?>
Python 示例代码:
def find_roots(a, b, c):
delta = b**2 - 4*a*c
if delta < 0:
return None # 没有实根
elif delta == 0:
root = -b / (2 * a)
return [root] # 重根
else:
root1 = (-b + delta**0.5) / (2 * a)
root2 = (-b - delta**0.5) / (2 * a)
return [root1, root2] # 两个不同的实根
# 测试用例
a = 1
b = -3
c = 2
roots = find_roots(a, b, c)
if roots is not None:
print("方程的根是:", roots)
else:
print("方程没有实根。")
# 更多相关内容,请访问码小课网站。
JavaScript 示例代码:
function findRoots(a, b, c) {
let delta = b * b - 4 * a * c;
if (delta < 0) {
return null; // 没有实根
} else if (delta === 0) {
let root = -b / (2 * a);
return [root]; // 重根
} else {
let root1 = (-b + Math.sqrt(delta)) / (2 * a);
let root2 = (-b - Math.sqrt(delta)) / (2 * a);
return [root1, root2]; // 两个不同的实根
}
}
// 测试用例
let a = 1;
let b = -3;
let c = 2;
let roots = findRoots(a, b, c);
if (roots !== null) {
console.log("方程的根是:", roots);
} else {
console.log("方程没有实根。");
}
// 更多相关内容,请访问码小课网站。
这些示例展示了如何使用不同的编程语言来求解一元二次方程的根,并包括了对不同情况的处理。