90分,求助,谢谢!
查看原帖
90分,求助,谢谢!
136770
Anthony1楼主2024/7/11 17:07
#include<bits/stdc++.h>
using namespace std;
int main() {
	string s,t;
	cin>>s>>t;
	int a[10090],b[10090],c[10090];
	a[0]=s.length();
	b[0]=t.length();
	int y=max(a[0],b[0]);
	bool big=0;
	if(a[0]<b[0])big++;//a<b
	if(a[0]==b[0])for(int ooo=0; ooo<=y; ooo++) {
			if(s[ooo]>t[ooo])break;
			if(s[ooo]<t[ooo]) {
				big++;
				break;
			}
		}//a<b 

	if(big) {//a<b 
		bool i=0;
		for(int ooo=1; ooo<=y; ooo++) {
			if(ooo<=a[0])b[ooo]=s[a[0]-ooo]-'0';
			else a[ooo]=0;
			if(ooo<=b[0])a[ooo]=t[b[0]-ooo]-'0';
			else b[ooo]=0;
			c[ooo]=a[ooo]-b[ooo];
			if(i) {
				c[ooo]--;
				i=0;
			}
			if(c[ooo]<0) {
				c[ooo]+=10;
				i++;
			}

		}
	}//a<b 

	else {      //a>b
		bool i=0;
		for(int ooo=1; ooo<=y; ooo++) {
			if(ooo<=a[0])a[ooo]=s[a[0]-ooo]-'0';
			else a[ooo]=0;
			if(ooo<=b[0])b[ooo]=t[b[0]-ooo]-'0';
			else b[ooo]=0;
			c[ooo]=a[ooo]-b[ooo];
			if(i) {
				c[ooo]--;
				i=0;
			}
			if(c[ooo]<0) {
				c[ooo]+=10;
				i++;
			}

		}
	}			//a>b
	if(big)cout<<"-";
	if(!c[y])y--;
	for(int ooo=y;ooo>0;ooo--)cout<<c[ooo];
	return 0;
}
2024/7/11 17:07
加载中...