我正在尝试解决ax + by = n。
当我输入 n = 7 时,它正确地求解方程为 X = 2 和 Y = 1。但是当我输入 n = 1 时,它不能求解方程。即使这个方程有有效的整数解,X = 17,Y = -11。这是我的完整程序。
#include <iostream>
using namespace std;
void PrintXY(int a, int b, int n)
{
for (int i = 0; i * a <= n; i++) {
if ((n - (i * a)) % b == 0) {
cout << "x = " << i << ", y = "
<< (n - (i * a)) / b;
return;
}
}
cout << "No solution";
}
int main()
{
int a = 2, b = 3, n = 1;
PrintXY(a, b, n);
return 0;
}
n = 7 时的输出:
x = 2, y = 1
n = 1 时的输出:
没有解决方案
推理。2*(2) + 3*(1) - 7 = 4 + 3 - 7 = 0
2*(17) + 3*(-11) - 1 = 34 - 33 - 1 = 0
两个方程都求解为 0。但是我的程序中有什么问题导致它给出“无解”。