题目描述
给一个小整数 x 和一个 x 进制的数 S。将 S 转为 10 进制数。对于超过十进制的数码,用 A
,B
,…… 表示。
输入格式
第一行一个整数 x;
第二行一个字符串 S。
输出格式
输出仅包含一个整数,表示答案。
输入输出样例
输入 #1
16 7B
输出 #1
123
说明/提示
【数据规模和约定】
保证目标数在十进制下不超过109,1≤x≤36。
思路
见[AC代码]。
AC代码
#include<bits/stdc++.h>//万能头文件
using namespace std;//使用标准命名空间
string s;
int main()
{
int x,cnt=0,n;
cin>>x>>s;//输入
n=s.length();//是求字符串的长度
for(int i=n-1;i>=0;i--)
{
if(s[i]>='A')//是11进制及以上的
cnt+=(s[i]-'A'+10)*pow(x,n-i-1);//pow:幂函数
else cnt+=(s[i]-'0')*pow(x,n-i-1);//否则是10进制以下的
}
cout<<cnt;
return 0;
}