笔试之大整数相乘

1.

#include<bits/stdc++.h>

using namespace std;

int main()
{
    vector<int> aa,bb,cc;
    string a,b;
    cin>>a>>b;
    for(int i=a.size()-1; i>=0; i--) aa.push_back(a[i]-'0');
    for(int i=b.size()-1; i>=0; i--) bb.push_back(b[i]-'0');
    for(int i=0; i<a.size()+b.size(); i++)
        cc.push_back(0);
    for(int i=0; i<aa.size(); i++)
        for(int j=0; j<bb.size(); j++)
        {
            cc[i+j] += (aa[i]*bb[j])%10;
            cc[i+j+1] += (aa[i]*bb[j])/10;
        }
        for(int i=0; i<aa.size()+bb.size()-1; i++)
        {
            cc[i+1] += cc[i]/10;
            cc[i] = cc[i]%10;
        }
        if(cc[aa.size()+bb.size()-1]!=0)
            cout<<cc[aa.size()+bb.size()-1];
        for(int i=aa.size()+bb.size()-2; i>=0; i--)
            cout<<cc[i];
        return 0;
}
原文地址:https://www.cnblogs.com/Roni-i/p/10338169.html