当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 大数运算(3)——大数乘法

大数运算(3)——大数乘法

2018年03月06日  | 移动技术网IT编程  | 我要评论

邓州市人民政府网,心猿意马快播,海扁王

 

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int MAX=1005;
int main()
{
    int x[MAX]={0},y[MAX]={0},z[2*MAX+1]={0};
    string a,b;
    cin>>a>>b;
    reverse(a.begin(),a.end());
    reverse(b.begin(),b.end());
    int i,j;
    for(i=0;i<a.length();i++)
        x[i]=a[i]-'0';
    for(i=0;i<b.length();i++)
        y[i]=b[i]-'0';
    for(i=0;i<a.length();i++)
        for(j=0;j<b.length();j++)
            z[i+j]=z[i+j]+x[i]*y[j];
    for(i=0;i<MAX*2;i++)
    {
        if(z[i]>=10)
        {
            z[i+1]+=z[i]/10;
            z[i]=z[i]%10;
        }
    }
    for(i=MAX*2;i>0;i--)
    {
        if(z[i]==0)
        continue;
        else break;
    }
    for(;i>=0;i--)
        cout<<z[i];
    return 0;
}

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网