题目描述
现有一方程ax+by=c,其中系数a、b、c不大于1000的正整数,求符合条件的所有正整数解,要求按x由小到大排列
输入
多组测试数据,第一行先输入整数T表示组数 然后每组输入3个整数分别表示a b c
输出
对于每组数据按要求输出所有正整数解 有多个解的情况下,每对解一行,要求按照x从小到大输出 无解时输出No
样例输入 Copy
1 1 2 3
样例输出 Copy
1 1
#include <stdio.h>
// 函数声明
void find_integer_solution(int a, int b, int c);
int main() {
int T;
scanf("%d", &T);
while (T--) {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
find_integer_solution(a, b, c);
}
return 0;
}
// 函数定义
void find_integer_solution(int a, int b, int c) {
int x, y;
int find_solution = 0;
for (x = 1; x <= c / a; x++) {
y = (c - a * x) / b;
if ((c - a * x) % b == 0 && y > 0) {
printf("%d %d\n", x, y);
find_solution = 1;
}
}
if (!find_solution) {
printf("No\n");
}
}