转载请注明出处: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 }