跪求大神看看问题
查看原帖
跪求大神看看问题
1416357
zzm114514楼主2024/10/25 22:49

自测没有问题,提交报错

#include<bits/stdc++.h>

using namespace std;

char a[10088], b[10088];

int c[10088];

int main() {

	a[0] = '0';
	b[0] = '0';
	int i1 = 1, i2 = 1;//a.length=i1  b.length=i2
	while (a[i1 - 1] !='\n') {
		scanf("%c", &a[i1]);
		i1++;
	}
	i1 = i1 - 2;
	while (b[i2 - 1] != '\n') {
		scanf("%c", &b[i2]);
		i2++;
	}
	i2 = i2 - 2;
	if(i2==i1){
		bool f=1;
		for(int i=1;i<=i1;i++){
			if(a[i]!=b[i]) {
				f=0;
				break;
			}
		}
		if(f==1){
			cout<<0;
			return 0;
		} 
	}
	if(i1>i2){
		int j=i1;
		int jin = 0;
	for (int i = 0; i <= j; i++) {

		if (i1 - i >= 0 && i2 - i >= 0) {
			c[i] = (a[i1 - i] - b[i2 - i] - jin+10) % 10;
			if(a[i1-i]-b[i2-i]-jin>=0) jin=0;
			else jin=1;
		}
		
		if (i1 - i >= 0 && i2 - i < 0) {
			c[i] = (a[i1 - i] - 48 - jin) % 10;
			jin=0;
		}
	}
	bool l=0;
	for (int i = i1; i >= 0; i--) {
		if (i == i1 && c[i] == 0) continue;
		if(c[i]!=0) {
			cout<<c[i];
			l=1;
		}
		if(c[i]==0) {
			if(l==0) continue;
			if(l==1) cout<<0;
		}
	}	
} 
	
	if(i1<i2){
		int j=i2;
		int jin=0;
		for (int i = 0; i <= j; i++) {

		if (i2 - i >= 0 && i1 - i >= 0) {
			c[i] = ( b[i2 - i]- a[i1 - i] - jin+10) % 10;
			if(b[i2-i]-a[i1-i]-jin>=0) jin=0;
			else jin=1;
		}
		
		if (i2 - i >= 0 && i1 - i < 0) {
			c[i] = (b[i2 - i] - 48 - jin) % 10;
			jin=0;
		}
	}
	cout<<"-";
	bool l=0;
	for (int i = i2; i >= 0; i--) {
		if (i == i2 && c[i] == 0) continue;
		if(c[i]!=0) {
			cout<<c[i];
			l=1;
		}
		if(c[i]==0) {
			if(l==0) continue;
			if(l==1) cout<<0;
		}
	}		
	}
	if(i1==i2){
		bool f=1;
		for(int i=1;i<=i1;i++){
			if(a[i]<b[i]){
				f=0;
				break;
			}
		}
		if(f==1){
			int j=i1;
			int jin=0;
			for (int i = 0; i <= j; i++){
			c[i] = (a[i1 - i] - b[i2 - i] - jin+10) % 10;
			if(a[i1-i]-b[i2-i]-jin>=0) jin=0;
			else jin=1;	
			}
			bool l=0;
			for (int i = i2; i >= 0; i--) {
		if (i == i2 && c[i] == 0) continue;
		if(c[i]!=0) {
			cout<<c[i];
			l=1;
		}
		if(c[i]==0) {
			if(l==0) continue;
			if(l==1) cout<<0;
		}
	}	
		}
		if(f==0){
			int j=i2;
			int jin=0;
			for (int i = 0; i <= j; i++){
			c[i] = ( b[i2 - i]- a[i1 - i] - jin+10) % 10;
			if(b[i2-i]-a[i1-i]-jin>=0) jin=0;
			else jin=1;	
			}
			cout<<"-";
			bool l=0;
			for (int i = i2; i >= 0; i--) {
		if (i == i2 && c[i] == 0) continue;
		if(c[i]!=0) {
			cout<<c[i];
			l=1;
		}
		if(c[i]==0) {
			if(l==0) continue;
			if(l==1) cout<<0;
		}
	}	
	}
}
    return 0;
}
2024/10/25 22:49
加载中...