x进制转化成10进制
作者:
never1
,
2024-07-04 20:40:49
,
所有人可见
,
阅读 3
#include <bits/stdc++.h>
using namespace std;
string c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
void trans(int a,int b){
if(a/b) trans(a/b,b);
cout<<c[a%b];
}
int main(){
int x;
cin>>x;
string s;
cin>>s;
//把x进制的字符串转化成10进制的数:
//5进制下的(123)相当于 1*(5^2)+2*(5^1)+3*(5^0)
int ans=0;
int w=1;
//从个位开始计算,因此是倒序
for(int i=s.length()-1;i>=0;i--)
{
int pos;
for(int j=0;j<c.length();j++)
{
if(s[i]==c[j])
{
pos=j;
break;
}
}
ans+= pos*w; //上一轮的结果加上本轮的数
w *=x; //w进一位
}
cout<<ans;//ans是最终结果
//利用trans()可把ans转化为任意进制;
return 0;
}