HDU 6225.Little Boxes-大数加法 (2017ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学))...

整理代码。。。

Little Boxes

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 2304    Accepted Submission(s): 818


Problem Description
Little boxes on the hillside.
Little boxes made of ticky-tacky.
Little boxes.
Little boxes.
Little boxes all the same.
There are a green boxes, and b pink boxes.
And c blue boxes and d yellow boxes.
And they are all made out of ticky-tacky.
And they all look just the same.
 

 

Input
The input has several test cases. The first line contains the integer t (1 ≤ t ≤ 10) which is the total number of test cases.
For each test case, a line contains four non-negative integers a, b, c and d where a, b, c, d ≤ 2^62, indicating the numbers of green boxes, pink boxes, blue boxes and yellow boxes.
 

 

Output
For each test case, output a line with the total number of boxes.
 

 

Sample Input
4
1 2 3 4
0 0 0 0
1 0 0 0
111 222 333 404
 

 

Sample Output
10
0
1
1070
 

 

Source
 

 

 

水题

 

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cmath>
 6 #include<cstdlib>
 7 #include<queue>
 8 #include<stack>
 9 #include<vector>
10 using namespace std;
11 typedef long long ll;
12 #define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
13 const int maxn=25;
14 const int mod=1e9+7;
15 const int inf=0x3f3f3f3f;
16 const double eps=acos(-1.0);
17 int a[maxn],b[maxn],c[maxn],d[maxn];
18 int main(int argc,const char *argv[]){
19     string str1,str2,str3,str4;
20     int len1,len2,len3,len4;
21     int up,n;
22     cin>>n;
23     while(n--){
24         cin>>str1>>str2>>str3>>str4;
25         len1=str1.length();len2=str2.length();
26         len3=str3.length();len4=str4.length();
27         memset(a,0,sizeof(a));memset(b,0,sizeof(b));
28         int i,j,k;
29         for(i=len1-1,k=0;i!=-1;--i){
30             a[k]=str1[i]-'0';
31             k++;
32         }
33         for(j=len2-1,k=0;j!=-1;--j){
34             b[k]=str2[j]-'0';
35             k++;
36         }
37         for(i=0,up=0;i<25;++i){
38             a[i]=a[i]+b[i]+up;
39             up=a[i]/10;
40             a[i]%=10;
41         }
42         memset(b,0,sizeof(b));memset(c,0,sizeof(c));
43         for(i=len3-1,k=0;i!=-1;--i){
44             b[k]=str3[i]-'0';
45             k++;
46         }
47         for(j=len4-1,k=0;j!=-1;--j){
48             c[k]=str4[j]-'0';
49             k++;
50         }
51         for(int i=0,up=0;i<maxn;++i){
52             b[i]=b[i]+c[i]+up;
53             up=b[i]/10;
54             b[i]%=10;
55         }
56         for(i=0,up=0;i<maxn;++i){
57             a[i]=a[i]+b[i]+up;
58             up=a[i]/10;
59             a[i]%=10;
60         }
61         for(i=maxn-1;i>=0;i--){
62             if(a[i])break;
63         }
64         if(i==-1)
65             cout<<"0";
66         else
67             for(;i>=0;i--)
68                 cout<<a[i];
69         cout<<endl;
70     }
71     return 0;
72 }

 

转载于:https://www.cnblogs.com/ZERO-/p/9129905.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值