求优化
查看原帖
求优化
1251525
wisdom2010楼主2024/3/25 19:50
#include<bits/stdc++.h>
using namespace std;
int n;
string a;
/*
A  B  C  D  E  F 
10 11 12 13 14 15
*/
const int maxn = 100000 + 5;
int ans[maxn];
int sum = 0;
int j = 0;
int b[maxn];
int m;
int f(int j)
{
	int mn = 1;
	for(int i = 0; i < j; i++)
		mn *= n;
	return mn;
}
int main()
{
	cin >> n;
	cin >> a;
	cin >> m;
	int len = a.size();
	for(int i = 0; i < len; i++)
	{
		if(a[i] == 'A')
			ans[i] = 10;
		else if(a[i] == 'B')
			ans[i] = 11;
		else if(a[i] == 'C')
			ans[i] = 12;
		else if(a[i] == 'D')
			ans[i] = 13;
		else if(a[i] == 'E')
			ans[i] = 14;
		else if(a[i] == 'F')
			ans[i] = 15;
		else
			ans[i] = a[i] - '0';
	}
	for(int i = len - 1; i >= 0; i--)
	{
		sum += f(j) * ans[i]; 
		j++;
	}
	int i = 0;
	while(sum > 0)
	{
		b[i] = sum % m;
		sum /= m;
		i++;
	}
	while(i > 0)
	{
		i--;
		cout << b[i];
	}
}

#1 和 #4 WA了qwq

2024/3/25 19:50
加载中...