社区讨论

#3 TLE!dalao们求助呀!!

P1143进制转换参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo9kw9wj
此快照首次捕获于
2023/10/28 13:05
2 年前
此快照最后确认于
2023/10/28 13:05
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
char num[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
long long int become10(int w,string s)
{
	int u[100];
	int l = s.length();
	for (int i=0;i<l;i++)
	{
		if(s[i] >= '0'&&s[i] <= '9')
		{
			u[i+1] = s[i]-'0';
		}
		else if(s[i] >= 'a'&&s[i] <= 'f')
		{
			u[i+1] = s[i]-'a'+10;
		}
		else if(s[i] >= 'A'&&s[i] <= 'F')
		{
			u[i+1] = s[i]-'A'+10;
		}
	}
	int o=1,sum=0;
	for (int i=l;i>=1;i--)
	{
		sum += u[i]*o;
		o *= w;
	}
	return sum;
}

void becomen(int b,int n)
{
	int o=1;
	int sum=1;
	while(o*b<=n)
	{
		o *= b;
		sum++;
	}
	for(int i=1;i<=sum;i++)
	{
		int y = n/o;
		cout << num[y];
		n -= y*o;
		o /= b;
	}
}

int main()
{
	int a,b;
	string n;
	cin >> a >> n >> b;
	int j = become10(a,n);
	becomen(b,j);
	return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...