sdut 3260 大数取模

来源:互联网 发布:python append extend 编辑:程序博客网 时间:2024/06/06 06:41
#include<iostream>#include<cstring>#include<cstdio>using namespace std;char a[10000005],b[10000005];int main(){    long long cnt,ans1,ans2,i,cas=1,len,cnt1,t;    scanf("%d",&t);    while(t--&&scanf("%s",a)!=EOF)    {        len=strlen(a);        for(i=len-1;a[i]=='0';i--);        for(i=i-4,ans1=0,cnt=cnt1=1;i>=0;i-=5)        {            ans1=(ans1+(((a[i]-'0')*10000+(a[i+1]-'0')*1000+(a[i+2]-'0')*100+(a[i+3]-'0')*10+a[i+4]-'0')%11)*cnt%10001)%11;            cnt=cnt*100000%11;        }        for(i+=4;i>=0;i--)        {            ans1=(ans1+(a[i]-'0')*cnt%11)%11;            cnt=cnt*10%11;        }        scanf("%s",b);        for(i=len-1;b[i]=='0';i--);        for(i=i-4,ans2=0,cnt=cnt1=1;i>=0;i-=5)        {            ans2=(ans2+(((b[i]-'0')*10000+(b[i+1]-'0')*1000+(b[i+2]-'0')*100+(b[i+3]-'0')*10+b[i+4]-'0')%11)*cnt%10001)%11;            cnt=cnt*100000%11;        }        for(i+=4;i>=0;i--)        {            ans2=(ans2+(b[i]-'0')*cnt%11)%11;            cnt=cnt*10%11;        }        if(ans1==ans2&&ans1==0&&strcmp(a,b)==0)            printf("YES\n");        else            printf("NO\n");    }    return 0;}

0 0
原创粉丝点击