高精度运算

高精度运算结构体

struct bign{
    int d[1010];
    int len;
    bign(){
    memset(d,0,sizeof(d));
    len=0;
    }
};
相关方法

bign change(char str[]){
    bign a;
    a.len=strlen(str);
    for(int i=0;i

高精度加法:

bign add(bign a,bign b){
    bign c;
    int carry=0;
    for(int i=0;i

高精度减法:

bign sub(bign a,bign b){
    bign c;
    for(int i=0;i=1&&c.d[c.len-1]==0){
            c.len--;
        }

    }
    return c;
}

高精度与低精度乘法:

bign mul(bign a,int b){
    bign c;
    int carry=0;
    for(int i=0;i
高精度与低精度除法:

bign div(bign a,int b,int& r){
    bign c;
    c.len=a.len;
    for(int i=a.len-1;i>=0;i--){
        r=r*10+a.d[i];
        if(r=1&&c.d[c.len-1]==0){
        c.len--;
    }
    return c;
}




你可能感兴趣的:(高精度运算)