有一个点没过,求大佬帮忙看一下
查看原帖
有一个点没过,求大佬帮忙看一下
1052154
Shadow_star楼主2024/1/7 19:22
#include<bits/stdc++.h>
using namespace std;
const int maxn=10100;
char tmp[maxn],sa[maxn],sb[maxn];
int t,a[maxn],b[maxn],c[maxn];
int main(){
	scanf("%s",sa);
	scanf("%s",sb);
	int la=strlen(sa);
	int lb=strlen(sb);
	if(la<lb||((la==lb)&&strcmp(sa,sb)<0)){
		strcpy(tmp,sa);
		strcpy(sa,sb);
		strcpy(sb,tmp);
		swap(la,lb);
		printf("%c",'-');
	}
	int lc=la>lb?la:lb;
	for(int i=0;i<la;i++) a[la-i]=sa[i]-'0';
	for(int i=0;i<lb;i++) b[lb-i]=sb[i]-'0';
	for(int i=1;i<=lc;i++){
		if(a[i]<b[i]){
			a[i]+=10;
			a[i+1]--;
		}
		c[i]=a[i]-b[i];
	}
	while(c[lc]==0) lc--;
	for(int i=lc;i>=1;i--) printf("%d",c[i]);
	return 0;
}
//我也不知道怎么回事,数组也够啊,总体也没看出是啥事,就差一个点就满分了,帮忙看一下
2024/1/7 19:22
加载中...