HDU 5186

easy !!

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #define LL __int64
 5 using namespace std;
 6 
 7 
 8 int input[210],l;
 9 char in[210];
10 struct BigNumber{
11     int B,len;
12     int num[210];
13     void init(){
14         len=0;
15         for(int i=0;i<=200;i++) num[i]=0;
16     }
17     void add_BigNubmer(int *a,int l){
18         len=max(len,l);
19 //        cout<<len<<endl;
20         int mod,up;
21         for(int i=0;i<len;i++){
22             mod=(a[i]+num[i])%B;
23             num[i]=mod;
24         }
25         if(num[len]) len++;
26     }
27 };
28 
29 void Init(){
30     for(int i=0;i<=200;i++) input[i]=0;
31 }
32 
33 
34 int main(){
35     BigNumber Number;
36     int n,B;
37     while(scanf("%d%d",&n,&B)!=EOF){
38         Number.init();
39         Number.B=B;
40         for(int i=0;i<n;i++){
41             scanf("%s",in);
42             int len=strlen(in);
43             l=0;
44             Init();
45             for(int i=len-1;i>=0;i--){
46                 if(in[i]>='0'&&in[i]<='9')
47                 input[l]=in[i]-'0';
48                 else if(in[i]>='a'&&in[i]<='z')
49                 input[l]=in[i]-'a'+10;
50                 l++;
51             }
52             Number.add_BigNubmer(input,l);
53         }
54         bool flag=false;
55         for(int i=Number.len-1;i>=0;i--){
56             if(!flag&&Number.num[i]==0){
57                 continue;
58             }
59             flag=true;
60             if(Number.num[i]<=9)
61             printf("%c",Number.num[i]+'0');
62             else if(Number.num[i]>9)
63             printf("%c",Number.num[i]-10+'a');
64         }
65         if(!flag) printf("0");
66         puts("");
67     }
68     return 0;
69 }
View Code
原文地址:https://www.cnblogs.com/jie-dcai/p/4340399.html