程式設計俱樂部每日一練(2018年12月2日) A - B problem大數減法
阿新 • • 發佈:2018-12-12
程式設計俱樂部每日一練(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; }