欢迎光临散文网 会员登陆 & 注册

P1143 进制转换

2023-03-21 19:43 作者:仓鼠翞  | 我要投稿

//https://www.luogu.com.cn/problem/P1143?contestId=96616

//进制转换

#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进制数转为二进制

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;

}

//将十进制转为m进制除m取余

while(er!=0)

{

int zhengchu=er/m;

int mid=er-zhengchu*m;

result.push_back(mid);

er=zhengchu;

}

//最先得到的数字是最低位啊

//vector中用size会包括换行符的长度

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;

}


P1143 进制转换的评论 (共 条)

分享到微博请遵守国家法律