0分求助
  • 板块P1143 进制转换
  • 楼主MuYuMC
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/24 20:07
  • 上次更新2024/7/24 21:05:45
查看原帖
0分求助
1351893
MuYuMC楼主2024/7/24 20:07

看着跟题解差不多啊

#include <iostream>
#include <string>
#include <cmath>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <iomanip>
using namespace std;
int n,n1,m;
int ans(char a)
{
	if(a == 'A')return 10;
	if(a == 'B')return 11;
	if(a == 'C')return 12;
	if(a == 'D')return 13;
	if(a == 'E')return 14;
	if(a == 'F')return 15;
	return a - '0';
}
char ans1(int a)
{
	if(a == 10)return 'A';
	if(a == 11)return 'B';
	if(a == 12)return 'C';
	if(a == 13)return 'D';
	if(a == 14)return 'E';
	if(a == 15)return 'F';
	return a + '0';
}
int main()
{
	int i,n = 0,cnt1,cnt2,x = 1;
	string s,s1;
	cin >> cnt1 >> s >> cnt2;
	for(i = s.size() - 1;i >= 0;i--)
	{
		n += ans(s[i]) * x;
		x *= cnt1;
	}
	while(n)
	{
		s1 += ans1(n % cnt2);
		n /= cnt2;
	}
	cout << s1;
	return 0;
}
2024/7/24 20:07
加载中...