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; }