80分超时求助
查看原帖
80分超时求助
1078007
yuyuelong楼主2023/10/22 16:52
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
char s1[2005], s2[2005];
int a[2005], b[2005], c[2005];
int main() {
	size_t la, lb, lc;
	scanf("%s", s1);
	scanf("%s", s2);
	la = strlen(s1);
	lb = strlen(s2);
	for (int i = 0; i < la; i++) {
		a[la-i] = s1[i]-'0';
	}
	for (int i = 0; i < lb; i++) {
		b[lb-i] = s2[i]-'0';
	}
	lc = la+lb;
	for(int i=1;i<=la;i++){
		for(int j=1;j<=lb;j++){
			c[i+j-1]+=a[i]*b[j];
			c[i+j]+=c[i+j-1]/10;
			c[i+j-1]=c[i+j-1]%10;
		}
	}
	while (c[lc] == 0 && lc != 1) {
		lc--;
	}
	for (size_t i = lc; i >0; i--) {
		cout << c[i];
	}
	return 0;
}

最后一个计分点总是超时,求大佬给个优化的办法

2023/10/22 16:52
加载中...