记录编号 454918 评测结果 AAAAAA
题目名称 增强的减法问题 最终得分 100
用户昵称 GravatarWHZ0325 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2017-09-30 11:28:36 内存使用 0.29 MiB
显示代码纯文本
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char s1[105];
char s2[105];
char ans[105];
int a[105];
int b[105];
int c[105];
inline void sub() {
	int len1=strlen(s1);
	int len2=strlen(s2);
	int len=0;
	if(strcmp(s1,s2)==0) {
		ans[0]='0';
		ans[1]=0;
		return;
	}
	if(len1<len2||(len1==len2&&strcmp(s1,s2)<0)) {
		ans[len++]='-';
		for(int i=0;i<len1;i++) {
			b[i]=s1[len1-i-1]-'0';
		}
		for(int i=0;i<len2;i++) {
			a[i]=s2[len2-i-1]-'0';
		}
	}
	else {
		for(int i=0;i<len1;i++) {
			a[i]=s1[len1-i-1]-'0';
		}
		for(int i=0;i<len2;i++) {
			b[i]=s2[len2-i-1]-'0';
		}
	}
	int l=max(len1,len2);
	int need=0;
	for(int i=0;i<l;i++) {
		if(a[i]-need<b[i]) {
			c[i]=a[i]-need+10-b[i];
			need=1;
		}
		else {
			c[i]=a[i]-need-b[i];
			need=0;
		}
	}
	int l0;
	for(l0=l-1;l0>=0;l0--) {
		if(c[l0]!=0) {
			break;
		}
	}
	for(int i=0;i<=l0;i++) {
		ans[len+i]=c[l0-i]+'0';
	}
	ans[l+1]=0;
}
int main() {
	freopen("sub.in","r",stdin);
	freopen("sub.out","w",stdout);
	scanf("%s%s",s1,s2);
	sub();
	printf("%s\n",ans);
	fclose(stdin);
	fclose(stdout);
	return 0;
}