0
点赞
收藏
分享

微信扫一扫

浪之潮科技:动力恢复清积碳,尾气治理三元催化修复

沪钢木子 2024-01-17 阅读 7
学习算法

低位在下标为0的数组那,代码都是用了繁凡的ACM模板。

加法

c = a+b

g||i<a.len||i<b.len 这个设定是直的好,再也不用担心两个数组的长度了,也不用担心c的数组长度。

{
    int c[N];
    clen = 0;
    for(int i=0,g=0; g||i<a.len||i<b.len ; i++)
    {
        int x=g;
        if(i<a.len) x+=a[i];
        if(i<b.len) x+=s[i];
        c[clen++] = x%10;
        g=x/10;
    }
    return c;
}

    

减法

c = a-b

{
    int c[N];
    int clen=0;
    int x;
    for (int i=0,g=0;i<alen ; i++)
{
    x=a[i]-g;
    if (i<b.len) x-=b[i];
    if (x>=0) g=0;
    else{
        x+=10;
        g=1;
    }
    c[clen++]=x;
}
    while (clen>1 && !s[len-1]) len--;
    return c;
}

乘法

c = a*b

{
    int c[N];
    int clen = alen+blen;
    for(int i=0;i<alen;i++)
    {
        for(int j=0;j<blen;j++)
        {
            c[i+j]+=a[i]*b[j];
        }
    }
    for(int i=0;i<clen-1;i++)
    {
        c[i+1]+=c[i]/10;
        c[i]=c[i]%10;
    }
    while(clen >1 && !c[clen-1]) clen--;
    return c;
}

两个数进行比较

先比长度,长度相同,从高位到低位进行比较。

举报

相关推荐

0 条评论