大佬求助 大整数乘法
  • 板块灌水区
  • 楼主A__KaQu
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/12/31 21:32
  • 上次更新2023/11/5 05:26:34
查看原帖
大佬求助 大整数乘法
354381
A__KaQu楼主2020/12/31 21:32
#include<bits/stdc++.h>
using namespace std;
char v1[205],v2[205];
int len1,len2,len,f[205],f1[205],f2[205];
int main()
{
	cin>>v1+1;
	int len1=strlen(v1+1);
	reverse(v1+1,v1+len1+1);
	for(int i=1;i<=len1;i++)
		f1[i]=v1[i]-'0';
    
    cin>>v2+1;
	int len2=strlen(v2+1);
	reverse(v2+1,v2+len2+1);
	for(int i=1;i<=len2;i++)
		f2[i]=v2[i]-'0';
    
    for(int i=1;i<=len1;i++)
      for(int j=1;j<=len2;j++)
        f[i+j-1]+=f1[i]*f2[j];
    len=len1+len2-1;
    for(int i=1;i<=len;i++)
      if(f[i]>9)
      {
      	f[i+1]+=f[i]/10;
      	f[i]%=10;
	  }
    if(f[len+1])len++;
    while(len>1 && f[len]==0)len--;
    for(int i=len;i>=1;i--)
     cout<<f[i];
    return 0;
}
2020/12/31 21:32
加载中...