深入浅出学算法006-求不定方程的所有解

Description

现有一方程ax+by=c,其中系数a、b、c均为整数,求符合条件的所有正整数解,要求按x由小到大排列,其中a b c 均为不大于1000的正整数

Input

多组测试数据,第一行先输入整数T表示组数 然后每组输入3个整数分别表示a b c

Output

对于每组数据按要求输出所有正整数解 有多个解的情况下,每对解一行,要求按照x从小到大输出 无解时输出No

Sample Input

1
1 2 3

Sample Output

1 1

 

 

 

#include <stdio.h>
int main(int argc, char *argv[])
{
int t,i,x,y,flag=0;
int a[10],b[10],c[10];
while(scanf("%d",&t)!=EOF){
for(i=0;i<t;i++){
scanf("%d",&a[i]);
scanf("%d",&b[i]);
scanf("%d",&c[i]);
}
for(i=0;i<t;i++){
for(x=1;x<c[i];x++){
for(y=1;y<c[i];y++){
if(a[i]*x+b[i]*y==c[i]){
printf("%d %d\n",x,y);
flag=1;
}
}

}
if(flag==0)
printf("No\n");
flag=0;
}
}
return 0;
}

posted @ 2018-12-23 22:57  阿森纳必胜  阅读(336)  评论(0编辑  收藏  举报