我们知道,如果X,Y互素时aX+bY可以表示任意整数(其中a,b为整数)。如果设置条件X,Y>0,并且aX+bY>=0时,求能表示的整数集中连续的整数最小的是多少? 例如输入X=3,Y=4.整数集为0,3,4,6,7,8,9……则输出6; 输入1行X和Y,输出一行表示最小整数; 其中X,Y为32位整数且互素。
现将本人的代码粘贴如下,希望大家给予指正和批评。
#include<stdio.h>
#include<stdlib.h>
int judge(int n,int x,int y);
int main(){
int a,b,x,y,n = 0;
int flags = 1;
scanf("%d %d",&x,&y);
while(flags){
if((judge(n,x,y) == 0)&&(judge(n - 1,x,y) == 1)&&(judge(n + 1,x,y) == 1)) flags = 0;
n ++;
}
printf("%d\n",n);
system("pause");
return 0;
}
int judge(int n,int x,int y){
int a = 0;
int tmp = 0;
while((n - a*x) >= 0){
if(((n - a*x)%y) == 0) tmp = 1;
a ++;
}
if(tmp == 1) return 1;
else return 0;
}