#include<iostream> #include<cstring> using namespace std; #define N 1001 int compare(char * c1,int s1,int e1,char *c2,int s2,int e2) { while(c1[s1]=='0'&&s1<e1)s1++; while(c2[s2]=='0'&&s2<e2)s2++; if(e1-s1>e2-s2)return 1; if(e1-s1<e2-s2)return -1; int i1;int f11=0; for(i1=0;i1<=e1-s1;i1++) { if(c1[s1+i1]>c2[s2+i1]){f11=1;break;} if(c2[s2+i1]>c1[s1+i1])break; } if(i1>e1-s1)return 0; if(f11)return 1; return -1; } void sub(char *c1,int l1,char *c2,int n,int l) { int fig=0; if(l1>l) { fig=1; int i5; for(i5=l;i5>0;i5--) c2[i5]=c2[i5-1]; c2[0]='0';l++; } int jw=0; int i4; char tc[N]; for(i4=l-1;i4>=0;i4--) { tc[i4]=((c2[i4]-48)*n+jw)%10+48; jw=((c2[i4]-48)*n+jw)/10; } jw=0; for(i4=l-1;i4>=0;i4--) { int ttt=jw; if(c1[i4]-tc[i4]-jw>=0) { tc[i4]=c1[i4]-tc[i4]-jw+48; jw=0; } else { jw=(tc[i4]-c1[i4]+jw); if(jw%10==0)jw/=10; else jw=jw/10+1; tc[i4]=jw*10+c1[i4]-tc[i4]-ttt+48; } } if(fig) { for(i4=0;i4<l-1;i4++)c2[i4]=c2[i4+1]; l--; c2[l]='/0'; } tc[l1]='/0'; for(i4=0;i4<=l1;i4++) c1[i4]=tc[i4]; } void high_precise_division(char *c1,char *c2) { int len1,len2; len1=strlen(c1); len2=strlen(c2); int i,j,k,ip; i=0; while(c1[i]=='0'&&i<len1-1)i++; for(j=0;i<len1;j++,i++)c1[j]=c1[i]; len1=j;c1[j]='/0'; i=0; while(c2[i]=='0'&&i<len2-1)i++; for(j=0;i<len2;j++,i++)c2[j]=c2[i]; len2=j;c2[j]='/0'; c1[len1]='/0'; c2[len2]='/0'; if(strcmp(c2,"0")==0)return ; if(strcmp(c1,"0")==0){strcpy(c2,"0");return ;} if(len1<len2||len1==len2&&compare(c1,0,len1-1,c2,0,len2-1)<0) { strcpy(c2,c1); c1[0]='0';c1[1]='/0'; return ; } else { ip=0; char product[N],*pr; pr=product; for(ip=0;ip<len2-1;ip++) pr[ip]=c1[ip]; for(i=0;i<=len1-len2;i++) { pr[ip++]=c1[len2-1+i]; if(ip>=len2 && compare(pr,0,ip-1,c2,0,len2-1)>=0) { char tc[N]; for(j=1;j<=9;j++) { for(k=0;k<ip;k++)tc[k]=pr[k]; sub(tc,ip,c2,j,len2); for(k=0;tc[k]!='/0';k++); if(compare(tc,0,k-1,c2,0,len2-1)<0) break; } strcpy(pr,tc); ip=strlen(pr); c1[i]=j+48; while(pr[0]=='0'&&ip>1) { for(j=0;j<ip-1;j++) pr[j]=pr[j+1]; ip--; } if(ip==1&&pr[0]=='0')ip--; } else c1[i]='0'; } while(c1[0]=='0') { for(j=0;j<i-1;j++) c1[j]=c1[j+1]; i--; } c1[i]='/0'; if(ip==0){pr[0]='0';pr[1]='/0';ip=1;} else { while(pr[0]=='0'&&ip>1) { for(j=0;j<ip-1;j++)pr[j]=pr[j+1]; ip--; } } for(j=0;j<ip;j++) c2[j]=pr[j]; c2[ip]='/0'; return ; } } int main() { int i,j,k,n; char c1[N],c2[N]; cin>>n; for(k=0;k<n;k++) { cin>>c1>>c2; char *pc1,*pc2; pc1=c1;pc2=c2; c1[strlen(c1)]='/0'; c2[strlen(c2)]='/0'; high_precise_division(pc1,pc2); printf("%s/n",pc1); } return 0; }