微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大数加减乘除幂模版

大数加

void add(char a[],char b[])
{
    int i,j,k=0,up=0,x,y,z,t;
    i=strlen(a)-1,j=strlen(b)-1;
    while(i>=0||j>=0)
    {
        if(i<0) x=0;else x=a[i]-'0';
        if(j<0) y=0;else y=b[j]-'0';
        z=x+y+up;
        if(z>9)
        {
            up=1;
            z-=10;
        }
        else
            up=0;
        c[k++]=z+'0';
        i--,j--;
    }
    if(up)
        c[k++]='1';
    c[k]='\0';
    for(i=0;i<k/2;i++)
    {
        t=c[i];
        c[i]=c[k-i-1];
        c[k-i-1]=t;
    }
}

大数*大数

void  mult(char  a1[],char  b1[]) {         int  i,k,lena,lenb;         char  a[1024]={0},b[1024]={0},d[1024]={0};         lena=strlen(a1);         lenb=strlen(b1);         for(i=0;i<lena;i++)                 a[i]=a1[lena-i-1]-'0';         for(i=0;i<lenb;i++)                 b[i]=b1[lenb-i-1]-'0';         for(i=0;i<lena;i++)                 for(j=0;j<lenb;j++)                 {                         d[i+j]+=a[i]*b[j];                         d[i+j+1]+=d[i+j]/10;                         d[i+j]%=10;                 }         k=lena+lenb;         while(!d[k-1])                 k--;         for(i=0;i<k;i++)                 c[i]=d[k-i-1]+'0'; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐