2 3 2 2 1 4 233 3 16 ab bc cd
1 233 14
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int n,b ;char ls[250][250],gq[250][250];
while(cin>>n>>b)
{
int len, L=-1;
memset(ls,0,sizeof(ls));
memset(gq,0,sizeof(gq));
for(int i=0;i<n;i++)
{
scanf("%s",ls[i]);
len=strlen(ls[i]);
if(len>L)
L=len;
for(int j=0;j<len;j++)
{
gq[i][len-1-j]=ls[i][j];
}
}
int sum=0;int flag=0;
for(int k=L-1;k>=0;k--)
{
sum=0;
for(int m=0;m<n;m++)
{
if(gq[m][k]<='9'&&gq[m][k]>='0')
sum+=gq[m][k]-48;
else if(gq[m][k]>=65&&gq[m][k]<='z')
sum+=gq[m][k]+10-'a';
}
sum%=b;
if(sum>9)
{
printf("%c",sum-10+'a');
flag=1;
}
else
{
if(sum)
flag=1;//注意只要在尚未发现第一个不为0得数之前都不能输出!!!不能有前置0!wa至少五次!
if(flag)
printf("%d",sum);
}
}
if(!flag)
cout<<0;
cout<<endl;
}
return 0;
}
杭电 HDU ACM 5186 zhx's submissions
原文:http://blog.csdn.net/lsgqjh/article/details/44872579