社区讨论

蒟蒻写的高精度最后一个点wa了

P1303A*B Problem参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo1mnc9i
此快照首次捕获于
2023/10/22 23:32
2 年前
此快照最后确认于
2023/11/03 00:16
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
const int N = 2010;
char s1[N] , s2[N] , op[N];
int a[N] , b[N] , c[N];
void change(char *s , int num[])
{
	int len = strlen(s);
	for (int i = 0 ; i < len ; i++)
	{
		num[len - 1 - i] = s[i] - '0';
	}
}
void jian(int a[] , int b[] , int c[])
{
	int jie = 0;
	for (int i = 0 ; i < N - 1 ; i++)
	{
		if (jie)
		{
			c[i] = a[i] - b[i] - 1;
			jie = 0;
		}
		else
		{
			c[i] = a[i] - b[i];
		}
		if (c[i] < 0)
		{
			c[i] += 10; 
			jie = 1;
		}
	}
}
void print(int num[])
{
	int len = N - 1;
	while (len >= 1 && num[len] == 0)
	{
		len--;
	}
	for (int i = len ; i >= 0 ; i--)
	{
		printf("%d" , num[i]);
	}
}
bool xiao(char *s , char *t)
{
	int len1 = strlen(s);
	int len2 = strlen(t);
	if (len1 != len2)
	{
		return len1 < len2;
	}
	for (int i = 0 ; i < len1 ; i++)
	{
		if (s[i] != t[i])
		{
			return s[i] < t[i];
		}
	}
	return false;
}
int main()
{
	scanf("%s%s" , s1 , s2);
	change(s1 , a);
	change(s2 , b);
	for (int i = 0 ; s1[i] ; i++)
	{
		for (int j = 0 ; s2[j] ; j++)
		{
			c[i + j] += a[i] * b[j];
		}
	}
	for (int i = 0 ; i < N - 1 ; i++)
	{
		c[i + 1] += c[i] / 10;
		c[i] %= 10;
	}
	print(c);
}

回复

3 条回复,欢迎继续交流。

正在加载回复...