C++ 解二元二次方程:代码示例及解析
要解方程 2x^2 + 5x + 1 = 0,你可以使用 C++ 来计算方程的根。以下是一个示例代码:
#include <iostream>
#include <cmath>
int main() {
double a = 2.0;
double b = 5.0;
double c = 1.0;
double discriminant = (b * b) - (4 * a * c);
if (discriminant > 0) {
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
std::cout << '方程的两个实根为:' << root1 << ' 和 ' << root2 << std::endl;
} else if (discriminant == 0) {
double root = -b / (2 * a);
std::cout << '方程的重根为:' << root << std::endl;
} else {
std::cout << '方程没有实根' << std::endl;
}
return 0;
}
在上述代码中,我们声明了三个 double 类型的变量 a、b、c,分别对应方程中的系数。然后,我们计算判别式 discriminant = b^2 - 4ac。
接下来,我们使用条件语句来判断方程的解的情况:
- 如果判别式大于 0,表示方程有两个实根。我们使用公式
root1 = (-b + √(discriminant)) / (2a)和root2 = (-b - √(discriminant)) / (2a)来计算这两个根,并将结果打印出来。 - 如果判别式等于 0,表示方程有一个重根。我们使用公式
root = -b / (2a)来计算这个根,并将结果打印出来。 - 如果判别式小于 0,表示方程没有实根。
在运行程序时,你应该会得到输出结果,显示方程 2x^2 + 5x + 1 = 0 的根。请注意,如果判别式为负数,程序会打印出“方程没有实根”的消息。
请注意,该代码假设方程的解为实数根。如果你需要处理复数根,请使用复数库或实现复数运算的自定义函数。
原文地址: https://www.cveoy.top/t/topic/bMPf 著作权归作者所有。请勿转载和采集!