P1303 A*B Problem(高精度乘法)

Posted zzctommy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1303 A*B Problem(高精度乘法)相关的知识,希望对你有一定的参考价值。

P1303 A*B Problem

模拟就好了。(c_ {i+j} +=a_i imes b_j).时间复杂度 (O(n*m))FFT版可以做到 (O((n+m)log (n+m))

#include<bits/stdc++.h>
using namespace std;
string times(string a,string b)
{
    int aa[15000]={0},bb[15000]={0},ans[30000]={0};
    string str="";
    for(int i=0;i<a.length();i++)
        aa[a.length()-i-1]=a[i]-'0';
    for(int i=0;i<b.length();i++)
        bb[b.length()-i-1]=b[i]-'0';
    for(int i=0;i<a.length();i++)
        for(int j=0;j<b.length();j++)
        {
            ans[i+j]+=aa[i]*bb[j];
            if(ans[i+j]>9)ans[i+j+1]+=ans[i+j]/10,ans[i+j]=ans[i+j]%10;
        }
    int len=a.length()+b.length();
    while(ans[len-1]==0&&len-1>0)len--;
    for(int i=0;i<len;i++)
        str=char(ans[i]+'0')+str;
    return str;
}
int main()
{
    string x,y;
    cin>>x>>y;
    cout<<times(x,y)<<endl;
    return 0;
}

以上是关于P1303 A*B Problem(高精度乘法)的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P1303 A*B Problem(高精度乘法) 题解

P1303 A*B Problem

P1303 A*B Problem

P1303 A*B Problem

P1303 A*B Problem

[HDU1402] A * B Problem Plus