40pts求助
  • 板块P1303 A*B Problem
  • 楼主entity
  • 当前回复1
  • 已保存回复1
  • 发布时间2020/11/4 20:16
  • 上次更新2023/11/5 09:00:36
查看原帖
40pts求助
225964
entity楼主2020/11/4 20:16
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
/*
   1111
   1111
------- 
   1111
  1111
 1111
1111
1234321
12345
65432
807758040

*/
char A[5001]={},B[5001]={};
int a[5001]={},b[5001]={},c[5001]={},lena,lenb,lenc;
int main(){
	cin>>A>>B;
	lena=strlen(A);
	lenb=strlen(B);
	for(int i=0;i<lena;i++) a[lena-i-1]=A[i]-'0';
	for(int i=0;i<lenb;i++) b[lenb-i-1]=B[i]-'0';
	for(int i=0;i<=lena+lenb;i++) c[i]=0;
	for(int i=0;i<lena;i++)
		for(int j=0;j<lenb;j++)
			c[i+j]+=a[i]*b[j];
	for(int i=0;i<lena+lenb;i++)
		if(c[i]>10){
			c[i+1]+=c[i]/10;
			c[i]%=10;
		}
	int lenc=lena+lenb;
	while(lenc>=1&&c[lenc]==0) lenc--;
	for(int i=lenc;i>=0;i--) cout<<c[i];
	return 0;
}
2020/11/4 20:16
加载中...