太子丶
愿你走出半生,归来仍为少年。
 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 }

 

posted on 2017-04-18 22:37  太子丶  阅读(733)  评论(0编辑  收藏  举报