题目:
http://acm.tju.edu.cn/toj/showp3860.html
先是RE,再是WA。。。。。。
坑之处:
1、RE的原因,题目里只说了模是被空格隔开的,没说是几个空格,我当一个空格处理的。
2、WA的原因:人家没说给的数一定是n位。要自己在前面补0.
这么一道题调了半天,丢人啊
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
void work(int n)
{
int i, j, l;
char str[50];
long long ans ;
long long mod[50];
long long num[50];
for (i = 0; i < n; i++)
{
scanf("%s",str);
if(str[0]>='0' && str[0]<='9') mod[i]=str[0]-'0';
else mod[i]=str[0] - 'A' + 10;
}
//for(i=0;i<n;i++) printf("%d\n",mod[i]);
memset(str,0,sizeof(str));
scanf("%s",str);
l=strlen(str);
if(l<n)
{
for(i=n-1;i>=n-l;i--)
str[i]=str[i-(n-l)];
for(i=0;i<n-l;i++)
str[i]='0';
}
for(i=0;i<strlen(str);i++)
{
if(str[i]>='0' && str[i]<='9')
num[i]=str[i]-'0';
else
num[i]=str[i]-'A'+10;
}
//for(i=0;i<n;i++) printf("%d\n",num[i]);
ans = num[0];
for (i = 1; i < strlen(str); i++)
ans =ans * mod[i] + (num[i]);
printf("%lld\n", ans);
}
int main()
{
int n;
while (~scanf("%d", &n))
work(n);
return 0;
}