POJ1503: Integer Inquiry(连续多个大整数加法运算)

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 string sum;
 5 const int max_len = 110;
 6 string tool(string a){
 7     int dif = max_len - a.length();
 8     string s = "";
 9     for(int i=0;i<dif;i++){
10         s += '0';
11     }
12     s+=a;
13     return s;
14 }
15 void solve(string a){
16     a = tool(a);
17     sum = tool(sum);
18     string ssum;
19     ssum = tool(ssum);
20 
21     for(int i=max_len-1;i>=1;i--){
22         int temp = (sum[i] -'0') + (a[i] - '0');
23         int c = ssum[i]-'0'+temp;
24         ssum[i] = c%10 + '0';
25         ssum[i-1] = (ssum[i-1]-'0'+c/10) + '0';
26     }
27     
28     sum = ssum;
29 }
30 int main(){
31     string a; sum = "";
32     while(cin>>a && a!="0"){
33         solve(a);
34     }
35     int i;
36     for(i=0;i<max_len;i++){
37         if(sum[i]!='0')   break;
38      }
39      for(int j=i;j<max_len;j++){
40          cout<<sum[j];
41      }cout<<endl;
42 }
View Code

 

posted @ 2014-12-26 12:19  流白  阅读(225)  评论(0编辑  收藏  举报