测试的都是对的但是WAqwq
  • 板块P1303 A*B Problem
  • 楼主JayCRL
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/13 17:00
  • 上次更新2024/1/13 20:01:13
查看原帖
测试的都是对的但是WAqwq
1206833
JayCRL楼主2024/1/13 17:00
#define _CRT_SECURE_NO_WARNINGS 1
#include <bits/stdc++.h>
using namespace std;
vector<int> c3;
void JW(int n,int i) {
	//那一位不存在
	if ((signed int)(c3.size()-1)<i) {
		if (n>=10){
			c3.push_back(n % 10);
			c3.push_back(n / 10);
		}
		else {
			c3.push_back(n);
		}
	}
	else {
	    //那一位存在
		n = n + c3.at(i);
		if (n>=10) {
			c3.at(i) = n % 10;
			JW(n / 10,i+1);
		}
		else {
			c3.at(i) = n;
		}
	}
}
void PR() {
	reverse(c3.begin(), c3.end());
	vector<int>::iterator vv = c3.begin();
	while ((vv != c3.end())&& (*vv == 0)) {
		vv++;
	}
	if (vv==c3.end()) {
		printf("0");
	}
	else {
		for (vv; vv != c3.end(); vv++) {
			printf("%d", *vv);
		}
	}
}
void XC(vector<int>* G,vector<int>* D) {
	//倒叙遍历位数低的
	for (vector<int>::iterator c1 = D->begin(); c1 != D->end(); c1++) {
		//遍历高位的每一位
		for (vector<int>::iterator c2 = G->begin(); c2 != G->end(); c2++) {
			int number = (*c1) * (*c2);
			JW(number, (c1-(D->begin()))+(c2-(G->begin())));
		}
	}
}
int main() {
	vector<int> c1;
	vector<int> c2;
	char c;
	//读取第一个数存入容器
	while ((c = getchar()) != '\n' && c != EOF) {
		c1.push_back(c-'0');
	}
	//读取第二个数存入容器
	while ((c = getchar()) != '\n' && c != EOF) {
		c2.push_back(c-'0');
	}
	reverse(c1.begin(), c1.end());
	reverse(c2.begin(), c2.end());
	//判断哪个数更大
	c1.size() > c2.size() ? XC(&c1, &c2) : XC(&c2, &c1);
	PR();
}

为什么一个测试点过不了 自己测试的没问题

2024/1/13 17:00
加载中...