文章
19
粉丝
69
获赞
30
访问
17.8k
由题意知不需要考虑大数,无需使用字符串存储数据。具体思路:将m进制转换为10进制,再将10进制转化为n进制。
但仍有两个注意事项,注意即可避免出现测试集不能全部通过情况:
参考代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int m, n;
cin >> m >> n; // m为初始进制,n为输出进制
string s; // m进制数
cin >> s;
long long decimal = 0;
for (auto it = s.begin(); it != s.end(); it++)
{
if (*it >= 'A')
{
decimal = decimal * m + (*it - 'A' + 10);
}
else
{
decimal = decimal * m + (*it - '0');
}
}
vector<char> newbase;
while (decimal != 0)
{
int remainder = decimal % n;
if (remainder >= 10)
{
newbase.push_back('a' + remainder - 10);
}
else
{
newbase.push_back('0' + remainder);
}
decimal /= n;
}
for (auto it = newbase.rbegin(); it != newbase.r...
登录后发布评论
暂无评论,来抢沙发