C++,80分求助
查看原帖
C++,80分求助
826645
Stronary楼主2023/5/29 17:28
#include<bits/stdc++.h>
using namespace std;
char A[2001];
int NUMA[2001];
char B[2001];
int NUMB[2001];
int sum[4001];
int main(){
	memset(A,0,sizeof(A));
	memset(B,0,sizeof(B));
	scanf("%s%s",A,B);
	
	
	memset(NUMA,0,sizeof(NUMA));
	memset(NUMB,0,sizeof(NUMB));
	memset(sum,0,sizeof(sum));
	int LA=strlen(A),LB=strlen(B);
	for(int i=LA-1;i>=0;i--){
		NUMA[2001-LA+i]=(int)A[i]-(int)'0';
	}
	for(int i=LB-1;i>=0;i--){
		NUMB[2001-LB+i]=(int)B[i]-(int)'0';
	}
	for(int i=0;i<=LA-1;i++){
		for(int j=0;j<=LB-1;j++){
			sum[2000-i-j]+=NUMA[2000-i]*NUMB[2000-j];
			
		}
		
	}
	int L=LA+LB-1;
	for(int i=0;i<=L-1;i++){
		while(sum[2000-i]>=10){
			sum[2000-i]-=10;
			sum[1999-i]+=1;
		}
		if(sum[2000-L]>0)L++;
	}
	while(sum[2001-L]==0&&L>1)L--;
	for(int i=L-1;i>=0;i--)printf("%d",sum[2000-i]);
	return 0;
}

#5WA了

2023/5/29 17:28
加载中...