1307:高精度乘法

发布时间 2023-07-20 19:41:05作者: 臧清宇

1307:【例1.3】高精度乘法

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。

【输入】

输入两个高精度正整数M和N。

【输出】

求这两个高精度数的积。

【输入样例】

36
3

【输出样例】

108
#include<bits/stdc++.h>
using namespace std;
int m[103],n[103];
int ans[10003];
int main(){
    string a,b;
    cin>>a>>b;
    int lm=a.length(),ln=b.length();
    for(int i=0;i<lm;i++)m[lm-i]=a[i]-'0';//倒序处理
    for(int i=0;i<ln;i++)n[ln-i]=b[i]-'0';
    for(int i=1;i<=ln;i++){
        int jw=0;//进位
        for(int j=1;j<=lm;j++){
            ans[i+j-1]+=n[i]*m[j];
            jw=ans[i+j-1]/10;
            ans[i+j-1]=ans[i+j-1]%10;
            ans[i+j]+=jw;
        }
    }
    if(ans[ln+lm]!=0)cout<<ans[ln+lm];
    for(int i=lm+ln-1;i>=1;i--){//倒序输出
        cout<<ans[i];
    }
    cout<<endl;
    return 0;
}