1 #include <stdio.h> 2 #include <string.h> 3 using namespace std; 4 char a[1005],b[1005]; 5 void Sub() 6 { 7 int flag = 0; 8 if(a == NULL || b == NULL) 9 return; 10 int len1 = strlen(a); 11 int len2 = strlen(b); 12 if(len1<len2) 13 { 14 int t = len1; 15 len1 = len2; 16 len2 = t; 17 char c[1005]; 18 strcpy(c,a); 19 strcpy(a,b); 20 strcpy(b,c); 21 flag = 1; 22 } 23 else if((len1 == len2)&&(a[0] < b[0])) 24 { 25 int t = len1; 26 len1 = len2; 27 len2 = t; 28 char c[1005]; 29 strcpy(c,a); 30 strcpy(a,b); 31 strcpy(b,c); 32 flag = 1; 33 } 34 35 int i, j; 36 int num1[1005]; 37 int num2[1005]; 38 for (i = 0; i < len1; i++) 39 { 40 num1[i] = num2[i] = 0; 41 } 42 for (i = len1 - 1; i >= 0; i--) 43 { 44 num1[len1 - 1 - i] = a[i] - '0'; 45 } 46 for (i = len2 - 1; i >= 0; i--) 47 { 48 num2[len2-1-i] = b[i] - '0'; 49 } 50 for (i = 0; i < len1; i++) 51 { 52 num1[i] = num1[i] - num2[i]; 53 if(num1[i] < 0) 54 { 55 num1[i] = num1[i] + 10; 56 num1[i+1] = num1[i+1] - 1; 57 } 58 } 59 for (i = len1-1; i>=0 && num1[i] == 0; i--); 60 if(flag == 1) 61 printf("-"); 62 if(i >= 0) 63 for (; i >= 0; i--) 64 { 65 printf("%d",num1[i]); 66 } 67 else 68 printf("0"); 69 } 70 71 int main(){ 72 scanf("%s%s",a,b); 73 Sub(); 74 return 0; 75 }