输入说明
第一行为一个正整数N(0<N>=1000,表示待处理的数量. 第二行为N个待处理数,以空格隔开,在表示时,大写字母表示进制,小写字母表示数值(如D表示14进制,在14进制中'0'~'9'对应十进制中的0~9,'a'~'d'对应十进制的10~13)如果存在非法表达,则该组表示无效,输出-1
输出说明
找出数值最大的数,输出它对应的十进制数
输入样例:
3
A21 B10 Cb
结果输出3
代码如下:
#include <iostream>
#include <string>
#include<cstring>
using namespace std;
bool sign;
int maxx=-1;
int main()
{
int n;
cin>>n;
while(n--)
{
string s;
cin>>s;
int len,factor,num;
char J=s[0];
factor=(J-'A')+11;
s=s.substr(1);
len = s.size();
sign =1;
num=0;
for(int i=0;i<len;i++)
{
if(s[i]>='0'&&s[i]<='9')
num=num*factor+(s[i]-'0');
else if(s[i]>='a'&&s[i]<='z')
num=num*factor+(s[i]-'a'+10);
else
{
sign=0;
break;
}
cout<<num<<" ";
}
if (sign)
{
maxx=max(maxx,num);
}
putchar(10);
}
if(sign)cout<<maxx;
else cout<<"-1";
return 0;
}