第一个样例错误
查看原帖
第一个样例错误
786154
zhanxiangkun楼主2023/7/7 15:50
#include <bits/stdc++.h>
using namespace std;
int main(){
	string a,b;
	cin>>a>>b;
	int a0[2001],b0[2001],s0[400001];
	for (int i=1;i<=a.size();i++){
		a0[i]=a[i-1]-48;
	}
	for (int i=1;i<=b.size();i++){
		b0[i]=b[i-1]-48;
	}
	if ((a.size()==1&&a0[2000]==0)||(b.size()==1&&b0[2000]==0)){
		cout << 0;
	}
	else
	{
		memset(s0,0,sizeof(s0));
		for (int i=1;i<=a.size();i++){
			for (int j=1;j<=b.size();j++){
				s0[400001-(a.size()+b.size()-(i+j)+1)]+=(a0[i]*b0[j])%10;
				if (a0[i]*b0[j]>=10){
					s0[400001-(a.size()+b.size()-(i+j)+2)]+=((a0[i]*b0[j])-(a0[i]*b0[j])%10)/10;
				}
			}
		}
		int longlongp;
		for (int i=1;i<400001;i++){
			if (s0[i]!=0){
				longlongp=400001-i;
				break;
			}
		}
		
		int kptua=1;
		while (kptua<=longlongp){
			if (s0[400001-kptua]>=10){
				if (longlongp<kptua+1){
					longlongp+=1;
				}
				s0[400001-kptua-1]+=(s0[400001-kptua]-s0[400001-kptua]%10)/10;
				s0[400001-kptua]=s0[400001-kptua]%10;
			}
			kptua+=1;
		}
		for (int ft=400001-longlongp;ft<=400000;ft++){
			cout << s0[ft];
		}	
	}
	return 0   ;
}
2023/7/7 15:50
加载中...