整数表示问题。

我们知道,如果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; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值