时间限制1.00s 内存限制128.00MB 难易度:普及−
【题目描述】
给一个小整数 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 x,a[105];
string s;
int jzzh(char c) //字母转数字。
{
if('0'<=c&&c<='9')return c-'0';
return c-'A'+10;
}
int main()
{
cin>>x>>s;
int n=s.size();
for(int i=n-1;i>=0;i--)
a[n-1-i]=jzzh(s[i]); //S的字母转数字存进数组。
int ans=0,t=1;
for(int i=0;i<n+1;i++)
{
ans+=t*a[i]; //进制转换。
t*=x;
}
cout<<ans;
return 0;
}