Logo zhrok's blog

求解一元二次方程的根
2026年09月09日
算法笔记

题目描述

给定一元二次方程 \( ax^2 + bx + c = 0 \),求解它的两个实根。

思路解析

根据求根公式:

\[
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
\]

当判别式 \( \Delta = b^2 - 4ac > 0 \) 时,有两个不相等的实根;
当 \( \Delta = 0 \) 时,有两个相等的实根;
当 \( \Delta < 0 \) 时,无实数解。

代码实现

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double a, b, c;
    cin >> a >> b >> c;
    double delta = b * b - 4 * a * c;
    
    if (delta > 0) {
        double x1 = (-b + sqrt(delta)) / (2 * a);
        double x2 = (-b - sqrt(delta)) / (2 * a);
        cout << "x1 = " << x1 << ", x2 = " << x2 << endl;
    } else if (delta == 0) {
        cout << "x = " << -b / (2 * a) << endl;
    } else {
        cout << "无实根" << endl;
    }
    return 0;
}
评论区
的头像
  1. 访客_464
    访客_464

    很好