x 进制转 10 进制
题目描述
给一个小整数
x
x
x 和一个
x
x
x 进制的数
S
S
S。将
S
S
S 转为
10
10
10 进制数。对于超过十进制的数码,用 A
,B
,
…
\ldots
… 表示。
输入格式
第一行一个整数 x x x;
第二行一个字符串 S S S。
输出格式
输出仅包含一个整数,表示答案。
样例 #1
样例输入 #1
16
7B
样例输出 #1
123
提示
【数据规模和约定】
保证目标数在十进制下不超过 1 0 9 10^9 109, 1 ≤ x ≤ 36 1 \leq x \leq 36 1≤x≤36。
Code:
#include <bits/stdc++.h>
using namespace std;
int x, a[105];
string S;
int charToInt(char c) {
if('0'<=c&&c<='9') return c-'0';
return c-'A'+10;
}
int main() {
cin>>x>>S;
int len=S.size();
for(int i=len-1;i>=0;i--)
a[len-1-i]=charToInt(S[i]);
int ans=0,w=1;
for(int i=0;i<len+1;i++){
ans+=w*a[i];
w*=x;
}
cout<<ans;
return 0;
}