码迷,mamicode.com
首页 > 其他好文 > 详细

高精度取模模板

时间:2019-09-07 13:38:25      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:iostream   bsp   scan   reg   ring   har   ems   main   tin   

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define ll long long
int turn[105];
struct node{
    int num[105];
    friend bool operator <(node a,node b){
        if(a.num[0]^b.num[0])  return a.num[0]<b.num[0];
        for(register int i=a.num[0];i;--i)  if(a.num[i]^b.num[i])  return a.num[i]<b.num[i];
        return 1;
    }
    friend node operator -(node a,node b){
        int pos;
        for(register int i=1;i<=a.num[0];++i){
            if(a.num[i]<b.num[i])  a.num[i]+=10,--a.num[i+1];
            a.num[i]-=b.num[i];
        }
        while(a.num[0]&&!a.num[ a.num[0] ]) --a.num[0];
        return a;
    }
    friend node operator %(node a,node b){
        int cnt=a.num[0]-b.num[0]+1;
        node res;
        for(register int i=cnt;i;--i){
            memset(res.num,0,sizeof(res.num));
            for(register int j=1;j<=b.num[0];++j)  res.num[j+i-1]=b.num[j];
            res.num[0]=b.num[0]+i-1;
            while(res<a) a=a-res;
        }
        return a;
    }
}n,m;
inline void read(node &n)
{
    int num=0; char ch=getchar();
    while(ch<0||ch>9)  ch=getchar();
    while(ch>=0&&ch<=9)  turn[++num]=(ch^48),ch=getchar();
    n.num[0]=num;
    for(register int i=1;i<=num;++i)  n.num[i]=turn[num-i+1];
}
void gcd(node a,node b){
    //cout<<a.num[0]<<‘ ‘<<b.num[0]<<‘ ‘<<b.num[1]<<"#"<<endl;
    if(!b.num[0]){
        if(a.num[0]==1&&a.num[1]==1){ cout<<"Yes"<<endl; return; }
        else { cout<<"No"<<endl; return ; }
    }
    if(a<b)  gcd(a,b%a);
    else gcd(b,a%b);
}
int main()
{    
    int t;
    scanf("%d",&t);
    while(t--){
        read(n),read(m);
        //n=n%m;
        //for(register int i=n.num[0];i;--i) cout<<n.num[i];
        gcd(n,m);
    }
}

 

 

高精度取模模板

标签:iostream   bsp   scan   reg   ring   har   ems   main   tin   

原文地址:https://www.cnblogs.com/three-D/p/11479919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!