您的位置:首页 > 其它

整数高精度乘法

2013-09-26 23:08 260 查看
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
#define MAX 100

int main(int argc, const char * argv[])
{

// insert code here...
long long m,n;
int a[MAX],b[MAX],c[MAX],la,lb,len;
len = 0;
cin>>m>>n;
la = 0;
while(m>0)
{

a[++la] = m % 10;
m = m / 10;
}
lb = 0;
while(n>0)
{

b[++lb] = n % 10;
n = n / 10;
}
memset(c, 0, sizeof(c));
len = la + lb;
for(int i = 1;i<= la;++i)
for(int j = 1;j<=lb;++j)

c[i+j-1] = c[i+j-1]+a[i]*b[j];
cout<<"============================="<<endl;
for(int i=1;i<=len;i++)
{
cout<<c[i]<<endl;
}
cout<<"============================="<<endl;

for(int i=1;i<=len;i++)
{
c[i+1]=c[i+1]+c[i]/10;
c[i]=c[i]%10;
}
for(int i=1;i<=len;i++)
{
cout<<c[i]<<endl;
}
cout<<"============================="<<endl;

while(c[len]==0)
len--;
m=c[len];
while(m>0)
{
c[len]=m%10;
m=m/10;
len++;
}
cout<<"============================="<<endl;
for(int i=len-1;i>=1;i--) {cout<<c[i];}
cout<<endl;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: