#include<iostream> #include<algorithm> #include<cstring> #include<string> using namespace std; int myMax(int x,int y){ return x>y?x:y; } void print(int a[],int end) { cout <<"{"; for(int i=a[0];i>=end;i--) cout << a[i]; cout <<"}"; } int cmp(int a[],int b[],int x) { if(a[0]-x+1>b[0]) return 1; if(a[0]-x+1<b[0]) return -1; for(int i=a[0];i>=x;i--) { int pos = b[0]-a[0]+i; if(a[i]>b[pos]) return 1; if(a[i]<b[pos]) return -1; } return 1; } void div2(int a[],int b[],int c[]) { string s1,s2; cin >> s1 >> s2; for(int i=0;i<100;i++) a[i]=b[i]=c[i]=0; a[0]=s1.length(); b[0]=s2.length(); for(int i=1;i<=a[0];i++) a[i]=s1[a[0]-i]-'0'; for(int i=1;i<=b[0];i++) b[i]=s2[b[0]-i]-'0'; c[0]=a[0]-b[0]+1; int x = a[0]-b[0]+1; while(x>=1) { print(a,x); cout << endl; print(b,1); cout << endl; if(cmp(a,b,x)==1) { c[x]++; for(int i=x;i<=b[0]+x-1;i++) { if(a[i]<b[i-x+1]) { a[i+1]--; a[i]+=10; } a[i]-=b[i-x+1]; } while(a[a[0]]==0 && a[0]!=1) a[0]--; } else { x--; } } while(c[c[0]]==0 && c[0]!=1) c[0]--; for(int i=0;i<c[0];i++) cout << c[c[0]-i]; cout <<endl;//result for(int i=0;i<a[0];i++) cout << a[a[0]-i]; cout <<endl; } void div(int a[],int b,int c[])//高精度除以低精度 { string s; cin >> s; cin >> b; for(int i=0;i<100;i++) a[i]=c[i]=0; c[0]=a[0]=s.length(); for(int i=1;i<=a[0];i++) a[i]=s[a[0]-i]-'0'; int data = 0,x=a[0]; while(x>=1) { data = data*10+a[x]; c[x] = data/b; data %= b; x--; } while(c[c[0]]==0 && c[0]!=1) c[0]--; for(int i=0;i<c[0];i++) cout << c[c[0]-i]; } void mul(int a[],int b[],int c[]) { string s1,s2; cin >> s1 >> s2; for(int i=0;i<100;i++) a[i]=b[i]=c[i]=0; a[0]=s1.length(); b[0]=s2.length(); c[0]=a[0]+b[0]; for(int i=1;i<=a[0];i++) a[i]=s1[a[0]-i]-'0'; for(int i=1;i<=b[0];i++) b[i]=s2[b[0]-i]-'0'; for(int i=1;i<=a[0];i++) { int x = 0; for(int j=1;j<=b[0];j++) { c[i+j-1]+=a[i]*b[j]+x; x = c[i+j-1]/10; c[i+j-1]%=10; } c[i+b[0]]+=x; } while(c[c[0]]==0 && c[0]!=1) c[0]--; for(int i=0;i<c[0];i++) cout << c[c[0]-i]; } void sub(int a[],int b[],int c[])//假设a>=b { string s1,s2; cin >> s1 >> s2; for(int i=0;i<100;i++) a[i]=b[i]=c[i]=0; a[0]=s1.length(); b[0]=s2.length(); c[0]=myMax(a[0],b[0]); for(int i=1;i<=a[0];i++) a[i]=s1[a[0]-i]-'0'; for(int i=1;i<=b[0];i++) b[i]=s2[b[0]-i]-'0'; for(int i=1;i<=c[0];i++) { if(a[i]<b[i]) { a[i]+=10; a[i+1]--; } c[i]=a[i]-b[i]; } while(c[c[0]]==0 && c[0]!=1) c[0]--; for(int i=0;i<c[0];i++) cout << c[c[0]-i]; } void add(int a[],int b[],int c[]) { string s1,s2; cin >> s1 >> s2; for(int i=0;i<100;i++) a[i]=b[i]=c[i]=0; a[0]=s1.length(); b[0]=s2.length(); c[0]=myMax(a[0],b[0])+1; for(int i=1;i<=a[0];i++) a[i]=s1[a[0]-i]-'0'; for(int i=1;i<=b[0];i++) b[i]=s2[b[0]-i]-'0'; for(int i=1;i<=c[0];i++) { c[i]+=a[i]+b[i]; if(c[i]>=10) { c[i+1]++; c[i]%=10; } } while(c[c[0]]==0 && c[0]!=1) c[0]--; for(int i=1;i<=c[0];i++) cout << c[c[0]-i+1]; } void init(int a[]) { string s; cin >> s; a[0]=s.length(); for(int i=1;i<=a[0];i++) a[i]=s[a[0]-i]-'0'; for(int i=1;i<=a[0];i++) cout << a[i] << endl; } int main(void) { freopen("d://1.txt","r",stdin); int a[100],b[100],c[100],d; //init(a); //add(a,b,c); //sub(a,b,c); //mul(a,b,c); //div(a,d,c); div2(a,b,c); return 0; }