救命!!!
查看原帖
救命!!!
370239
Crazy_13754楼主2021/10/21 10:37

莫名奇妙的只能对第一个点

#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>

using namespace std;

	const int MAXN = 1e8;
	int num1[MAXN], num2[MAXN], ans[MAXN];
	char inl1[MAXN], inl2[MAXN];

int main()
{
	ios::sync_with_stdio(0);

	cin >> inl1 >> inl2;
	int len1 = strlen(inl1);
	int len2 = strlen(inl2);

	for(int i = 1; i <= len1; i++)
		num1[i] = inl1[len1-i] - '0';
	for(int i = 1; i <= len2; i++)
		num2[i] = inl2[len2-i] - '0';

	for(int i = 1; i <= len2; i++)
		for(int j = 1; j <= len1; j++)
			ans[j+i-1] += num1[j] * num2[i];

	for(int i = 1; i < len1 + len2; i++)
		if(ans[i] > 9){ 
		ans[i+1] += ans[i]/10;
		ans[i] %= 10;
		}

	int n = len1 + len2;

	while(ans[n] == 0 && n > 1) n--;

	for(int i = n; i >= 1; i--)
		cout << ans[n];
	return 0;
}
2021/10/21 10:37
加载中...