为什么每一次跟题解算出来的一样,到自己的提交就是都错
  • 板块P1303 A*B Problem
  • 楼主YLLRML
  • 当前回复7
  • 已保存回复7
  • 发布时间2025/1/2 19:04
  • 上次更新2025/1/3 11:19:44
查看原帖
为什么每一次跟题解算出来的一样,到自己的提交就是都错
1599746
YLLRML楼主2025/1/2 19:04
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

int main()
{
	vector<int> v1, v2;
	char c;
	while (scanf("%c", &c))
	{
		if (c == '\n')		break;
		v1.push_back(c - '0');
	}
	while (scanf("%c", &c))
	{
		if (c == '\n')		break;
		v2.push_back(c - '0');
	}
	int i = v1.size(), j = v2.size();
	if (i < j)
	{
		swap(v1, v2);
		swap(i, j);
	}

	vector<int> v3(i, 0);
	int k,l,a,b,count;
	for (j--,count=0; j >= 0;count++,j--)
	{
		for (k = i-1,a=0,b=0,l = v3.size()-1-count; l>=0; k--,l--)
		{
			a = v1[k] * v2[j] + a;
			b = v3[l] + a % 10+b;
			v3[l] = b % 10;
			a /= 10;
			b /= 10;
		}
		while(k>=0)
		{
			v3.insert(v3.begin(), 0);
			a = v1[k] * v2[j] + a;
			b = v3[0] + a % 10+b;
			v3[0] = b % 10;
			a /= 10;
			b /= 10;
			k--;
		}
		while (a != 0 || b != 0)
		{
			v3.insert(v3.begin(), 0);
			b = v3[0] + a % 10 + b;
			v3[0] = b % 10;
			a /= 10;
			b /= 10;
		}
	}
	if (v3[0] == 0)
	{
		cout << v3[0];
		return 0;
	}
	for (auto it : v3)
		cout << it;
	return 0;
}


2025/1/2 19:04
加载中...