HDOJ 1047 Integer Inquiry (大数)

 1 //http://acm.hdu.edu.cn/showproblem.php?pid=1047
 2
//这题要说的,我觉得就是要考虑进位的问题,而且不是进一位两位,可能是很多位,
//不过好像不考虑也能过,估计是测试数据太弱了。

//还有就是题目讲了半天不知道再扯什么东西,,,给的Input感觉有问题,,,
//水过就好。。。。
 3 #include <iostream>
 4 #include <string.h>
 5 using namespace std;
 6 int main()
 7 {
 8     int n,i,a,l;
 9     char    s[100];    
10     while(cin>>n)
11     while(n--)
12     {
13         int sum[105]={0},m=0;
14        while(cin>>s,strcmp(s,"0"))
15        {
16             l=strlen(s);
17             if(l>m)
18                 m=l;
19             for(i=l-1;i>=0;i--)
20             {
21                   sum[l-1-i]+=s[i]-'0';
22                  if(sum[l-1-i]>9)
23                  {
24                      sum[l-i]+=sum[l-1-i]/10;
25                      sum[l-1-i]=sum[l-1-i]%10;
26                  }
27             }
28             if(l<m)        //我觉得是有必要考虑的
29             {
30                 for(i=i;i<m;i++)
31                 {
32                     if(sum[i]>9)
33                      {
34                          sum[i+1]+=sum[i]/10;
35                          sum[i]=sum[i]%10;
36                      }
37                 }
38             }
39        
40        }
41        l=0;
42        for(i=m+5;i>=0;i--)
43        {   
44           if(sum[i]&&l==0)
45                 l=1;
46          if(l||i==0)
47            cout<<sum[i];
48        }
49        cout<<endl;
50        if(n>0)
51            cout<<endl;
52     }
53 }
原文地址:https://www.cnblogs.com/Lee-geeker/p/3391344.html