20分HELP
查看原帖
20分HELP
1533114
Henryblaaack楼主2025/7/30 22:07

自己先是看了一遍题解然后关掉回忆着思路写的,结果只对了一个点,这是为啥:(

#include <iostream>
#include <cstring>
using namespace std;
string na,nb;
int a[100005],b[100005],res[100005];
int main()
{
	cin >> na >> nb;
	int lena = na.length();
	int lenb = nb.length();
	for(int i = 1;i <= lena;i++)
	{
		a[i] = na[lena - i] - '0';
	}
	for(int i = 1;i <= lenb;i++)
	{
		b[i] = nb[lenb - i] - '0';
	}
	for(int i = 1;i <= lenb;i++)
	{
		for(int j = 1;i <= lena;i++)
		{
			res[i + j - 1] += a[j] * b[i];
		}
	}
	for(int i = 1;i < lena + lenb;i++)
	{
		if(res[i] >= 10)
		{
			res[i+1] += res[i] / 10;
			res[i] %= 10;
		}
	}
	int len = lena + lenb;
	while(res[len] == 0 && len > 1)
	{
		len--;
	}
	for(int i = len;i >= 1;i--)
	{
		cout << res[i];
	}
	return 0;
}
2025/7/30 22:07
加载中...