给一个小整数 �x 和一个 �x 进制的数 �S。将 �S 转为 1010 进制数。对于超过十进制的数码,用 A
,B
,…… 表示。
Input
第一行一个整数 �x;
第二行一个字符串 �S。
Output
输出仅包含一个整数,表示答案。
Sample 1
Inputcopy | Outputcopy |
---|---|
16 7B | 123 |
思路:
其它进制转化为十进制的转换原则:从个位开始,每个位上的数依次乘以x(进制)的0,1,2,3......次方,再求和
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
string s;
cin>>s;
int sum=0,p=1;
for(int i=s.size()-1;i>=0;i--) //从字符串末尾开始转换
{
if(s[i]>='A')sum+=(s[i]-'A'+10)*p;
else sum+=(s[i]-'0')*p;
p=p*n; //每换一位之后,进制数就多一个次方(即乘一个进制数)
}
cout<<sum;
return 0;
}