您的位置:首页 > 其它

大数相乘 完全矩阵 优化版

2016-05-06 20:10 274 查看
#include <iostream>
#include <string>
#include <cstring>
#include <stdio.h>
using namespace std;
int d[100000],p[100000];
int a[100000],b[100000];
int main()
{
string e1,e2;
while(cin>>e1>>e2)
{
int x,y;
x=strlen(&e1[0]);
y=strlen(&e2[0]);
int i,j;
for(i=0;i<x;i++) a[i]=e1[i]-48;
for(i=0;i<y;i++) b[i]=e2[i]-48;

memset(p,0,sizeof(p));
for(i=y-1;i>=0;i--)
{

memset(d,0,sizeof(d));
for(j=x-1;j>=0;j--)
{
d[i+j+1]=d[i+j+1]+b[i]*a[j]%10;
int k=d[i+j+1]/10;
d[i+j+1]%=10;
d[i+j]=k+b[i]*a[j]/10;
p[i+j+1]=p[i+j+1]+d[i+j+1];

if(p[i+j+1]>9)
{
p[i+j]+=1;
p[i+j+1]=p[i+j+1]%10;
}
}p[i+j+1]+=d[i+j+1];
}
if(p[0]!=0) i=0;
else i=1;
for(;i<x+y;i++) cout<<p[i];
cout<<endl;
}
return  0;
}


数组随便开了 开的越大算的越大
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: