百練2736/noi 11:大整數減法
阿新 • • 發佈:2019-02-08
2736:大整數減法
- 總時間限制:
- 1000ms
- 記憶體限制:
- 65536kB
- 描述
-
求兩個大的正整數相減的差。
- 輸入
- 共2行,第1行是被減數a,第2行是減數b(a > b)。每個大整數不超過200位,不會有多餘的前導零。
- 輸出
- 一行,即所求的差。
- 樣例輸入
-
9999999999999999999999999999999999999 9999999999999
- 樣例輸出
-
9999999999999999999999990000000000000
- 檢視
- 提交
- 統計
- 提示
- 提問
-
- 程式碼:
#include<cstdio> #include<cstring> char s1[202],s2[202]; int ans[202]; char * strRev(char * s){ char * p,*q,ch; p=q=s; while(*q!='\0')q++; q--; while(p<q){ ch = *p; *p++ = *q; *q-- = ch; } return s; } int main(){ scanf("%s",s1); scanf("%s",s2); strRev(s1);strRev(s2); int len1=strlen(s1),len2=strlen(s2); for(int i =0;i<len2;i++){ ans[i]= s1[i] - s2[i]; } for(int i =len2;i<len1;i++) ans[i]=s1[i]-'0'; for(int i = 0;i<len1-1;i++){ if(ans[i]<0){ ans[i]+=10; ans[i+1]--; } } int tmp =len1-1; while(ans[tmp]==0)tmp--; for(int i=tmp;i>=0;i--)printf("%d",ans[i]); putchar('\n'); return 0; }