uva--10673

来源:互联网 发布:oracle数据库alter 编辑:程序博客网 时间:2024/05/22 11:57

一道扩展欧几里得的简单题

直接套扩展欧几里得的公式就行了。


//注意题目数的范围#include<iostream>#include<cmath>using namespace std;void exgcd(long long a,long long b,long long&d,long long&x,long long&y){    if(b==0)    {        x=1;y=0;d=a;    }    else    {        exgcd(b,a%b,d,y,x);        y=y-(a/b)*x;    }}int main(){    long long x1,k,a,b,d,x,y,k1;    int t;    cin>>t;    while(t--)    {        cin>>x1>>k;        a=x1/k;b=ceil((double)x1/k); //向上取整时必需先化为double型        exgcd(a,b,d,x,y);        k1=x1/d;        x=x*k1;y=y*k1;        cout<<x<<" "<<y<<endl;    } return 0;}


0 0
原创粉丝点击