当前位置: 面试刷题>> 方程的根 (经典算法题500道)
### 题目补充:
题目:给定一个一元二次方程 $ax^2 + bx + c = 0$,其中 $a \neq 0$,请使用你选择的编程语言(PHP, Python, JavaScript)来编写一个函数,该函数接受 $a$、$b$ 和 $c$ 作为参数,并返回该方程的根。如果方程有两个实根,则返回这两个根组成的数组;如果方程有一个重根,则返回包含该重根的单元素数组;如果方程没有实根(即判别式 $\Delta = b^2 - 4ac < 0$),则返回 `null` 或相应的错误消息。
### PHP 示例代码:
```php
```
### Python 示例代码:
```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 示例代码:
```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("方程没有实根。");
}
// 更多相关内容,请访问码小课网站。
```
这些示例展示了如何使用不同的编程语言来求解一元二次方程的根,并包括了对不同情况的处理。