您的位置:首页 > 其它

poj2389 大整数乘法

2011-09-04 15:34 274 查看
#include <iostream>
using namespace std;
const int N=42;
char str1
,str2
;
int s1
,s2
,result[2*N];
int main()
{
int i,j,len1,len2,len;
memset(str1,'\0',sizeof(str1));
memset(str2,'\0',sizeof(str2));
for(i=0;i<2*N;i++)
result[i]=0;
cin>>str1;
cin>>str2;
len1=strlen(str1);
len2=strlen(str2);
j=0;
for(i=len1-1;i>=0;i--)
s1[j++]=str1[i]-'0';
j=0;
for(i=len2-1;i>=0;i--)
s2[j++]=str2[i]-'0';
for(i=0;i<len1;i++)
{
for(j=0;j<len2;j++)
{
result[i+j]+=s1[i]*s2[j];
}
}
len=len1+len2;
for(i=0;i<len;i++)
{
if(result[i]>=10)
{
result[i+1]+=result[i]/10;
result[i]=result[i]%10;
}
}
bool flag=true;
for(i=len;i>=0;i--)
{
if(flag)
{
if(result[i]>0)
{
flag=false;
cout<<result[i];
}
}
else
cout<<result[i];
}
cout<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: