大数乘法

#include <iostream>
#include <cstring>
#include <memory.h>
using namespace std;
char num1[100],num2[100],multi[100];
int begin;
short result[100];
void bigmulti(char num1[],char num2[])
{
     int len1 = strlen(num1);
     int len2 = strlen(num2);
     memset(result,0,sizeof(result));
     for(int i=len1-1;i>=0;i--)
          for(int j=len2-1;j>=0;j--)
     {
           result[i+j+1] += (num1[i]-'0')*(num2[j]-'0');
          if(result[i+j+1]>=10)
          {
               result[i+j]+=result[i+j+1]/10;
               result[i+j+1]%=10;
          }
     }
     begin=(result[0]==0)?1:0;
     for(int i=begin;i<=len1+len2-1;i++)
     {
          cout<<result[i];
     }
     cout<<endl;
}
int main()
{
    cout<<"输入数1:";
    cin>>num1;
    cout<<"输入数2:";
    cin>>num2;
    cout<<"乘积为\n";
    bigmulti(num1,num2);
    return 0;
}

你可能感兴趣的:(大数乘法)