2736大整数减法,3180 整数减法

转载请注明出处:http://www.cnblogs.com/zhishoumuguinian/p/8430498.html

 

9999999999999999999999999999999999999                         
9999999999999
9999
4567
0
1

样例输出

9999999999999999999999990000000000000
5432
-1

 1 #include<bits/stdc++.h>
 2 #include<string>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     string s1, s2;
 8     while(cin>>s1>>s2)
 9     {
10         int a[250]= {0}, b[250]= {0};
11         a[0]=s1.length();
12         b[0]=s2.length();
13         int i;
14         for(i=1; i<=a[0]; i++)
15         {
16             a[i]=s1[a[0]-i]-'0';
17         }
18         for(i=1; i<=b[0]; i++)
19         {
20             b[i]=s2[b[0]-i]-'0';
21         }
22         int flag=0;
23         for(i=max(a[0],b[0]); i>0; i--)
24         {
25             if(a[i]>b[i])
26             {
27                 flag=1;
28                 break;
29             }
30             if(a[i]<b[i])
31             {
32                 flag=-1;
33                 break;
34             }
35         }
36 
37         if(flag==0)
38         {
39             memset(a,0,sizeof(a));
40             a[0]=1;
41         }
42         if(flag==1)
43         {
44             for(i=1; i<=a[0]; i++)
45             {
46                 if(a[i]<b[i])
47                 {
48                     a[i+1]--;
49                     a[i]+=10;
50                 }
51                 a[i]-=b[i];
52             }
53             while(a[a[0]]==0)
54                 a[0]--;
55         }
56         if(flag==-1)
57         {
58             for(i=1; i<=b[0]; i++)
59             {
60                 if(b[i]<a[i])
61                 {
62                     b[i+1]--;
63                     b[i]+=10;
64                 }
65                 a[i]=b[i]-a[i];
66             }
67             a[0]=b[0];
68             while(a[a[0]]==0)
69                 a[0]--;
70         }
71         if(flag==-1)
72             cout<<"-";
73         for(i=a[0]; i>0; i--)
74         {
75             cout<<a[i];
76         }
77         cout<<endl;
78     }
79     return 0;
80 }

 

 

 

posted @ 2018-02-08 10:48  nefuer  阅读(216)  评论(0编辑  收藏  举报