P1143 進(jìn)制轉(zhuǎn)換
//https://www.luogu.com.cn/problem/P1143?contestId=96616
//進(jìn)制轉(zhuǎn)換
#include<bits/stdc++.h>
using namespace std;
int n;
string s;
int m;
long long er;
int k=1;
vector<int> result;
int main()
{
cin>>n;
cin>>s;
cin>>m;
//先將n進(jìn)制數(shù)轉(zhuǎn)為二進(jìn)制
for(int i=s.size()-1;i>=0;i--)
{
if(s[i]>='A'&&s[i]<='Z')
{
er+=(s[i]-'A'+10)*k;
}
else
{
er+=(s[i]-'0')*k;
}
k=k*n;
}
//將十進(jìn)制轉(zhuǎn)為m進(jìn)制除m取余
while(er!=0)
{
int zhengchu=er/m;
int mid=er-zhengchu*m;
result.push_back(mid);
er=zhengchu;
}
//最先得到的數(shù)字是最低位啊
//vector中用size會(huì)包括換行符的長(zhǎng)度
for(int i=result.size()-1;i>=0;i--)
{
if(result[i]>=0&&result[i]<=9)
{
cout<<result[i];
}
else
{
printf("%c",result[i]-10+'A');
}
}
return 0;
}
標(biāo)簽: