您的位置:首页 > 其它

51nod 1027 大数乘法

2016-11-03 20:05 381 查看
#include <bits/stdc++.h>
using namespace std;

string multi(string a,string b)
{
int arr[2020],i,j;
memset(arr,0,sizeof(arr));
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
for(i=0;i<a.length();i++)
{
for(j=0;j<b.length();j++)
{
arr[i+j]+=(a[i]-'0')*(b[j]-'0');
}
}
string ret(a.length()+b.length(),'0');
for(i=0;i<a.length()+b.length();i++)
{
arr[i+1]+=arr[i]/10;
arr[i]%=10;
ret[i]+=arr[i];
}
reverse(ret.begin(),ret.end());
if(ret[0]=='0')
ret=ret.substr(1);
return ret;
}

int main()
{
string a,b;
while(cin>>a>>b)
{
cout<<multi(a,b)<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  51nod