文章

121

粉丝

68

获赞

94

访问

20.3k

头像
大整数乘法 题解:高精度乘高精度 转 高精度乘低精度
P1475
发布于2025年2月7日 11:15
阅读数 102

#include <bits/stdc++.h>
using namespace std;

const int LEN = 1000;

int a[LEN],b[LEN],c[LEN];

void clear(int a[]){
    for(int i=0;i<LEN;i++){
        a[i]=0;
    }
}

void read(int a[],string s){
    clear(a);
    int j=0;
    for(int i=s.size()-1;i>=0;i--){
        a[j++]=s[i]-'0';
    }
}

void mul(int a[],int b[],int c[]){
    clear(c);
    for(int i=0;i<LEN-1;i++){
        for(int j=0;j<=i;j++){
            c[i]+=a[j]*b[i-j];
        }
        if(c[i]>=10){
            c[i+1]+=c[i]/10;
            c[i]%=10;
        }
    }
}

void print(int a[]){
    int flag=0;
    for(int i=LEN-1;i>=0;i--){
        if(a[i]==0&&flag==0)continue;
        else if(a[i]!=0)flag=1;
        cout<<a[i];
    }
}

int main(){
    int n;
    string x,y;
    while(cin>>n>>x>>y){
        read(a,x);
        read(b,y);
        mul(a,b,c);
        print(c);
    }
}

大家都知道,低精度乘高精度的计算是非常简单的,我们只需要把...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发