求助,全wa
  • 板块P1303 A*B Problem
  • 楼主DingTao
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/9 11:06
  • 上次更新2024/8/9 11:51:07
查看原帖
求助,全wa
134750
DingTao楼主2024/8/9 11:06
#include <iostream>
#include <string>
using namespace std;
int main(){
	string a , b;
	int maxx, d,flag1 = 0,flag2 = 0,flag = 0;
	int a1[5005] = { }, b1[5005] = { },ans[10010] = {};
	getline(cin,a);
	getline(cin,b);
	maxx = a.size() > b.size() ? a.size():b.size();

	for(int i = a.size() - 1;i >= 0;i --){
		a1[a.size() - i] = a[i] - '0';
		if(a1[a.size() - i] != 0) flag1 = 1;
	}
	
	for(int i = b.size() - 1;i >= 0;i --){
		b1[b.size() - i] = b[i] - '0';
		if(b1[b.size() - i] != 0) flag2 = 1;
	}
	if(flag1 == 0||flag2 == 0){
		cout << 0;
		return 0;
	}
	
	for(int i = 1;i <= a.size();i ++){
		for(int j = 1;j <= b.size();j ++){
			ans[i+j-1] += a1[i]*b1[j];
			if(ans[i+j-1] >= 10){
				ans[i+j] = ans[i+j] + ans[i+j-1]/10;
				ans[i+j-1] = ans[i+j-1] % 10;
			}
			d = i + j-1;
		}
	}
	if(ans[d+1] != 0) d ++;
	for(int i = d;i >= 1;i --){
		if(ans[i] != 0) flag = 1;
		if(ans[i] == 0&&flag == 0) continue;
		cout << ans[i];
	}
	
	
	return 0;
}

自己测试的第一个样例0*10,输出是0,提交第一个点都过不了,求助。

2024/8/9 11:06
加载中...