编程俱乐部每日一练(2018年12月2日) A - B problem大数减法
Description
Now, Give you two intgers A and B , Please calculate the value of A minus B.
Attation: A、B and A−B are all non-negative numbers.
Input
Each line will contain two integers A and B.Process to end of file.(EOF)
Output
For each case, Please output the value of A minus B
Sample Input 1
5 3
4 1
Sample Output 1
2
3
方法类似于大数加法
以字符串形式输入再倒序转化为数组,进行对位相减。
因为是减法要判断并去除前导0.
代码:
#include<stdio.h>
#include<string.h>
int main()
{
char A[1000],B[1000];
while(scanf("%s%s",&A,&B)!=EOF){
int a[1000],b[1000];
int c=-1;
for(int i=0;i<1000;i++){
a[i]=0,b[i]=0;
}
for(int i=strlen(A)-1,n=0;i>=0;i--,n++){
a[n]=A[i]-'0';
}
for(int i=strlen(B)-1,n=0;i>=0;i--,n++){
b[n]=B[i]-'0';
}
for(int i=0;i<strlen(A);i++){
a[i]-=b[i];
if (a[i]<0){
a[i+1]-=1;
a[i]=a[i]+10;
}
}
for(int i=strlen(A)-1;i>=0;i--){ //判断并去除前导0
if(a[i]!=0){
c=i;
break;
}
}
if(c>=0){
for(int i=c;i>=0;i--){
printf("%d",a[i]);
}
}
else{
printf("0");
}
printf("\n");
}
return 0;
}