第一个样例过不了
查看原帖
第一个样例过不了
572269
KevinMark楼主2022/11/25 15:13

too short on line 1? 第一个样例过不了

#include<stdc++.h>
using namespace std;

int main()
{
	//定义两个字符串,输入
	string a, b;

	cin >> a >> b;
	int lena, lenb = 0;
	lena = a.length();
	lenb = b.length();
	//逆序存放数字
	int arra[9999] = { 0 };
	int arrb[9999] = { 0 };
	for (int i = 1; i <= lena; i++)
	{
		arra[i] = a[lena - i] - '0';
	}
	for (int i = 1; i <= lenb; i++)
	{
		arrb[i] = b[lenb - i] - '0';
	}
	//定义结果数组,错位相加
	int c[99999] = { 0 };
	for (int j = 1; j <= lenb; j++)
	{
		for (int i = 1; i <= lena; i++)
		{
			c[i + j - 1] += arra[i] * arrb[j];
		}
	}
	//处理进位问题
	for (int i = 1; i <= lena + lenb - 1; i++)
	{
		if (c[i] > 9)
		{
			c[i + 1] += c[i] / 10;
			c[i] %= 10;
		}
		
	}
	//删除c中多余的0
	int lenc = lena + lenb;
	while (c[lenc] == 0 && lenc > 1)
	{
		lenc--;
	}
	//按照lenc输出

	for (int i = lenc; i >= 1; i--)
	{
		cout << c[i];
	}
	return 0;
}

2022/11/25 15:13
加载中...