哪儿错了????
查看原帖
哪儿错了????
1145322
HYW13618469136楼主2024/8/17 10:19
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int M=1e4+86+5;
char s[M];
char s1[M];
int s2[M]={0};
signed main()
{
	cin>>s>>s1;
	int a[M]={0};
	int b[M]={0};
	int len=strlen(s);
	int len1=strlen(s1);
	int f=0;
	if(len1>len)
	{
		f=1;
	}
	else if(len==len1)
	{
		for(int i=0;i<len;i++)
		{
			if(s[i]<s1[i])
			{
				f=1;
				break;
			}
			else if(s[i]>s1[i])
			{
				f=0;
				break;
			}
		}
	}
	if(f)
	{
		cout<<'-';
		swap(s,s1);
		swap(len,len1);
	}
	for(int i=0;i<len;i++)
	{
		a[i]=s[i]-'0';
	}
	for(int i=0;i<len1;i++)
	{
		b[i]=s1[i]-'0';
	}
	for(int i=0;i<len/2;i++)
	{
		swap(a[i],a[len-1-i]);
	}
	for(int i=0;i<len1/2;i++)
	{
		swap(b[i],b[len1-1-i]);
	}
	int len2=max(len,len1);
	int c[M]={0};
	for(int i=0;i<len2;i++)
	{
		c[i]+=a[i]-b[i];
		if(c[i]<0)
		{
			c[i+1]--,c[i]+=10;
		}
	}
	while(c[len2-1]==0&&len2>0)
	{
		len2--;
	}
	for(int i=len2-1;i>=0;i--)
	{
		cout<<c[i];
	}
}
2024/8/17 10:19
加载中...