大佬们看看我这高精度乘法哪里错了
查看原帖
大佬们看看我这高精度乘法哪里错了
371253
qinlei楼主2022/3/9 17:45
#include<stdio.h>
#include<string.h>
char s1[2005], s2[2005];
int a[2005], b[2005], c[2005];
int main()
{
	int la, lb, lc;
	scanf("%s", s1);
	scanf("%s", s2);
	la = strlen(s1);
	lb = strlen(s2);
	for (int i = 0; i < la; i++)
		a[la - i] = s1[i] - '0';
	for (int i = 0; i < lb; i++)
		b[lb - i] = b[i] - '0';
	lc = la + lb;
	for (int i = 1; i <= la; i++)
	{
		for (int j = 1; j <= lb; j++)
		{
			c[i + j - 1] += a[i] * b[i];
			c[i + j] += c[i + j - 1] / 10;
			c[i + j - 1] %= 10;
		}
	}
	while (c[lc] == 0 && lc > 0) lc--;
	for (int i = lc; i > 0; i--)
		printf("%d", c[i]);
	return 0;
}

输入4544656 4544656 输出-24-2-4-1-6-6-1-5-7-5-8-3-3-6

2022/3/9 17:45
加载中...