RE
查看原帖
RE
1304502
China_U_19641016楼主2024/9/18 21:25
#include<bits/stdc++.h>
#include<cstring>
using namespace std;
int a[100001],b[100001],c[100001];
string s1,s2;
void change(string s,int arr[]){
	arr[0]=s.length();
	for(int i=1;i<=arr[0];i++){
		arr[i]=s[arr[0]-i]-'0';
	}
}
void print(int arr[]){
	for(int i=arr[0];i>=1;i--){
		cout<<arr[i];
	}
}
int compare(int a[],int b[]){
	if(a[0]>b[0])	return 1;
	if(a[0]<b[0])	return -1;
	for(int i=a[0];i>=1;i--){
		if(a[i]>b[i]) return 1;
		if(a[i]<b[i]) return -1;
	}
	return 0;
} 
void copyArr(int p[],int q[],int m){
	for(int i=1;i<=q[0];i++){
		p[i+m-1]=q[i];
	} 
	p[0]=q[0]+m-1;
}
void sub(int a[],int b[]){
	int flag=compare(a,b);
	if(flag==0){
		a[0]=1;
		a[1]=0;
		return;
	}
	if(flag==1){
		for(int i=1;i<=a[0];i++){
			if(a[i]<b[i]){
				a[i]+=10;
				a[i+1]--; 
			}
			a[i]-=b[i];
		}
		while(a[a[0]]==0&&a[0]>1) a[0]--;
	}
} 
void d(int a[],int b[],int c[]){
	memset(c,0,sizeof(c));
	c[0]=a[0]-b[0]+1;
	int tmp[100001];
	for(int i=c[0];i>=1;i--){
		memset(tmp,0,sizeof(tmp));
		copyArr(tmp,b,i); 
		while( compare(a,tmp)>=0){ 
			c[i]++;
			sub(a,tmp); 
		} 
	}
	while(c[c[0]]==0&&c[0]>1) c[0]--;
} 
int main(){
	cin>>s1>>s2;
	change(s1,a);
	change(s2,b);	
	d(a,b,c);
	print(c);
	return 0;
}
2024/9/18 21:25
加载中...