高精度乘法 c++实现

高精度乘法 c++实现

高精度乘法

和加法比较像。代码:

#include <iostream>
#include <cstring>
using namespace std;
int main(){<!-- -->
  char a1[100],b1[100];
  int a[100],b[100],lena,lenb,lenc=1,c[100]={<!-- -->0},i,x=0,p=1,q=1,j;
  gets(a1);
  gets(b1);
  memset(a,0,sizeof(a));
  memset(b,0,sizeof(b));
  lena=strlen(a1);
  lenb=strlen(b1);
  for(i=0;i<lena;i++)
    a[lena-i]=a1[i]-48;
  for(i=0;i<lenb;i++)
    b[lenb-i]=b1[i]-48;
  lenc=1;
  for(i=1;i<=lena;i++){<!-- -->
    x=0;
    for(j=1;j<=lenb;j++){<!-- -->
      c[i+j-1]=c[i+j-1]+a[i]*b[j]+x;
      x=c[i+j-1]/10;
      c[i+j-1]%=10;
    }
    c[i+lenb]=x;
  }
  lenc=lena+lenb;
  while(c[lenc]==0&&lenc>1)
    lenc--;
  for(i=lenc;i>=1;i--)
    cout<<c[i];
  return 0;
}
posted @ 2021-01-12 16:21  刘桓湚  阅读(247)  评论(0)    收藏  举报