一元二次方程求整数解c++
时间: 2024-10-13 07:00:35 浏览: 26
一元二次方程求整数解通常涉及计算给定方程ax² + bx + c = 0的根,其中a、b和c是整数系数。在C++中,可以利用数学库如`<cmath>`和`<iostream>`来解决这个问题。这里有一个简单的步骤:
1. 首先检查判别式Δ = b² - 4ac是否大于等于0,因为只有当Δ >= 0时,方程才有实数解。
2. 然后,计算两个解x1和x2,公式为 x1,2 = [-b ± sqrt(Δ)] / (2 * a)。
3. 对于每个解,进行取模运算并判断结果是否为0,若结果为0则说明找到了整数解。这是因为如果余数为0,那么该解就是原方程的一个整数解。
以下是一个简化的示例代码片段:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool isInteger(double num) {
return floor(num) == num; // 判断是否为整数
}
void solveQuadratic(int a, int b, int c) {
double discriminant = b * b - 4 * a * c;
if (discriminant >= 0) {
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
if (isInteger(root1)) {
cout << "整数解1: " << static_cast<int>(root1) << endl;
}
if (isInteger(root2)) {
cout << "整数解2: " << static_cast<int>(root2) << endl;
}
} else {
cout << "方程无整数解." << endl;
}
}
int main() {
int a, b, c;
cin >> a >> b >> c;
solveQuadratic(a, b, c);
return 0;
}
```
阅读全文