大整数乘法

来源:互联网 发布:北京sql培训班 编辑:程序博客网 时间:2024/05/20 20:48
#include<iostream>#include<string>#include<cstring> using namespace std;void chengfa(string a2,string b2);int main(){    while(1){        cout<<"大整数乘法运算器"<<endl;        cout<<"运行程序请按:1"<<endl;        cout<<"退出程序请按:2"<<endl;        int flag=0,flag1=0;//标记         int m;        while(1){            cin>>m;            switch(m){                case 1:                    flag1=1;                    break;                case 2:                    flag=1;                    flag1=1;                    break;                default:                    cout<<"输入无效,请重新输入"<<endl;                    break;             }            if(flag1==1)                break;        }        if(flag==1)            break;          string a1,b1;        cout<<"输入第一个数为:";         cin>>a1;        cout<<"输入第二个数为:";        cin>>b1;         chengfa(a1,b1);     }    return 0;}void chengfa(string a2,string b2){    int A[500]={0};    int i,j,k,n,i1,i2;    long long b=0,d=0;    int len1=a2.length();//获取第一个数的长度     int len2=b2.length();//获取第二个数的长度     d=0;    for(i1=0,k=len1-1; i1<len1; i1++,k--){        for(i2=0,j=len2-1; i2<len2; i2++,j--){            i=i1+i2;            b=A[i]+(a2[k]-48)*(b2[j]-48)+d;            A[i]=b%10;            d=b/10;        }        if(d>0){            i++;            A[i]=A[i]+d%10;            d=d/10;        }        n=i;    }    cout<<"程序运算后输出:";     cout<<a2<<"*"<<b2<<"=";    for(i=n;i>=0;i--)        cout<<A[i];    cout<<endl; }