欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Romantic(hdu 2669)

程序员文章站 2024-01-12 09:25:04
...
Romantic
扩展欧几里德算法。a*x1+b*y1=1 ;
代码:
#include<iostream>  
#include<cstdio>  
using namespace std;  
   
long long exgcd(long long a,long long b,long long& x,long long& y)  
{  
    if(b==0)  
    {  
        x=1,y=0;  
        return a;  
    }  
    long long g = exgcd(b,a%b,y,x);  
    y -= a/b*x;  
    return g;  
}  
  
int main()  
{  
    long long a,b,x1,y1;  
    while(cin >> a >> b)  
    {  
        long long c=1;
        long long d=exgcd(a,b,x1,y1);
        if(c%d!=0) 
            printf("sorry\n");  
        else  
        {  
            x1=x1*c/d;
            x1=(x1%(b/d)+(b/d))%(b/d);
            y1=(c-a*x1)/b;
            printf("%I64d %I64d\n",x1,y1);  
        }  
    }  
    return 0;  
}  

上一篇: HDU 2669 Romantic

下一篇: