總時間限制: 1000ms 記憶體限制: 65536kB 描述
求兩個大的正整數相減的差。 輸入 共2行,第1行是被減數a,第2行是減數b(a > b)。每個大整數不超過200位,不會有多餘的前置字元為零。 輸出 一行,即所求的差。 範例輸入
99999999999999999999999999999999999999999999999999
範例輸出
9999999999999999999999990000000000000
大整數的減法和加法其實差不多,下面也附上兩種ac代碼。
版本一:#include#includeint main(){ char s1[210],s2[210]; int a[210]={0},b[210]={0},i,j=0,k,t=0,l1,l2; gets(s1); gets(s2); l1=strlen(s1); l2=strlen(s2); for(i=l1-1;i>=0;i--) a[j++]=s1[i]-'0'; for(j=0,i=l2-1;i>=0;i--) b[j++]=s2[i]-'0'; for(i=0;i=0&&a[i]==0;i--); if(i>=0) { for(;i>=0;i--) printf("%d",a[i]); } else printf("0"); return 0;}版本二:#include#includechar a[202],b[202];int c[202],d[202];int main(){ int l1,l2,i,k,t; scanf("%s%s",a,b); l1=strlen(a),l2=strlen(b); for(i=0;il2?k=l1:k=l2; for(i=0;i<=k;i++) t=c[i]-d[i],t<0?(t+=10,c[i+1]--):t,c[i]=t; while(!c[k]&&k)k--; for(;k>=0;k--) printf("%d",c[k]); return 0;}