题目描述
给一个小整数 x 和一个 x 进制的数 S。将 S 转为 10 进制数。对于超过十进制的数码,用 A
,B
,… 表示。
输入格式
第一行一个整数 x;
第二行一个字符串 S。
输出格式
输出仅包含一个整数,表示答案。
输入输出样例
输入 #1复制
16 7B
输出 #1复制
123
说明/提示
【数据规模和约定】
保证目标数在十进制下不超过 10^9,1≤x≤36。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,power=1,sum=0;
string n;
cin>>x>>n;
for(int i=n.size()-1;i>=0;i--)
{ int m=n[i]-'0';
if(m<=9)
{
//将字符转化为数字 int n=n[i]+'0'将数字转化为字符
sum+=m*power;
power*=x;
}
else
{
int m=n[i]-'A'+10;//这里是处理16进制的A~F
//将字符转化为数字 int n=n[i]+'0'将数字转化为字符
sum+=m*power;
power*=x;
}
}
cout<<sum<<endl;
}