大整数乘法C++实现

来源:互联网 发布:建筑安装预算软件 编辑:程序博客网 时间:2024/06/05 15:47

参照http://blog.csdn.net/tjsinor2008/article/details/5625849

使用填乘积表的方式实现大整数乘法。

#include <iostream>#include <string>using namespace std;int a[1000][1000];//定义乘积表int main(){    int i,j;    string mul1,mul2;    cin>>mul1;    cin>>mul2;    for(i=0;i<1000;i++)    {        for(j=0;j<1000;j++)            a[i][j]=0;    }    int k,w;    k=mul1.size();    w=mul2.size();    for(int c=0;c<w;c++)    {        for(j=0;j<k;j++)        {            int t1,t2;            t1=(int)mul1.at(j)-48;            t2=(int)mul2.at(c)-48;            a[c][j+c]=t1*t2;        }    }//乘积填表    for(i=0;i<w+k-1;i++)    {        for(j=1;j<w;j++)        {            a[j][i]=a[j][i]+a[j-1][i];        }    }//在表中纵向累加    for(j=k+w-2;j>0;j--)    {        a[w-1][j-1]=a[w-1][j]/10+a[w-1][j-1];        a[w-1][j]=a[w-1][j]%10;    }//进位    for(i=0;i<k+w-1;i++)    {        cout<<a[w-1][i];    }//输出乘积return 0;}


0 0
原创粉丝点击