c++高精乘法
  • 板块学术版
  • 楼主SAKULA
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/12/13 15:21
  • 上次更新2023/11/5 06:10:27
查看原帖
c++高精乘法
362362
SAKULA楼主2020/12/13 15:21
#include <bits/stdc++.h>
using namespace std;
char a1[201],b1[201];
int a[201],b[201],c[2000000],k,la,lb,lc,i,j;
int main()
{
  cin>>a1>>b1;
  la=strlen(a1);
  lb=strlen(b1);
  lc=la+lb;
  for (i=la; i>=0; i--) a[la-i]=a1[i]-'0';
  for (i=lb; i>=0; i--) b[lb-i]=b1[i]-'0';

  for (i=0; i<la; i++)
  {
    k=0;
    for (j=0; j<lb; j++)
    {
      c[i+j]=a[i]*b[j]+k+c[i+j];
      k=c[i+j]/10;
      c[i+j]%=10;
    }
    c[i+lb-1]=k;
  }

  while (c[lc]==0&&lc>1) lc--;
  for (i=lc-1; i>=0; i--) cout<<c[i];
  return 0;
}

求各位dalao看看发生甚么事了

2020/12/13 15:21
加载中...