| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
lujie#include"stdio.h" #include"string.h" static int p1[200],p2[200],result[200]; char size1[200],size2[200]; int substract(int *p1,int *p2,int len1,int len2) { int i; if(len1<len2) return -1; if(len1==len2) { for(i=len1-1;i>=0;i--) if(p1[i]<p2[i]) return -1; } for(i=0;i<len1;i++) { p1[i]-=p2[i]; if(p1[i]<0) { p1[i]+=10; p1[i+1]--; } } for(i=len1-1;i>=0;i--) if(p1[i]>0) return i+1; else if(p1[i]<0) return -1; else continue; } main() { int k=0,i,j,n,a,ntimes,ntmp,t,len1,len2; scanf("%d",&n); for(t=0;t<n;t++) { scanf("%s",size1); scanf("%s",size2); a=len1=strlen(size1); len2=strlen(size2); for(j=len1-1;j>=0;j--) p1[k++]=size1[j]-'0'; for(j=len2-1,k=0;j>=0;j--) p2[k++]=size2[j]-'0'; if(len1<len2) { printf("0\n"); continue; } ntimes=len1-len2; if(ntimes>=0) { for(j=len1-1;j>=0;j--) if(j>=ntimes) p2[j]=p2[j-ntimes]; else p2[j]=0; } len2=len1; for(i=0;i<=ntimes;i++) { while(ntmp=substract(p1,p2+i,len1,len2)>=0) { len1=ntmp; result[ntimes-i]++; } len2--; } for(i=a,k=0;i>=0;i--) { if(k) printf("%d",result[i]); else if(result[i]!=0) { t=1; printf("%d",result[i]); } } } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator