题面:
分析:
秦九韶算法求出十进制
再从十进制转到其他进制
十转其他我根据栈的思想用递归来写,简洁舒服
代码:
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long LL;
LL dec(char num[], int n)
{
LL res = 0;
for (int i = 0; num[i]; i++)
{
if (num[i] >= 65)
res = res * n + num[i] - 'A' + 10;
else
res = res * n + num[i] - '0';
}
return res;
}
void ced(LL num, int n)
{
if (num == 0) return;
ced(num / n, n);
if (num % n >= 10)
cout << (char)('A' + num % n - 10);
else
cout << num % n;
}
int main()
{
int n, d;
char num[30];
cin >> n >> num >> d;
for (int i = 0; num[i]; i++) num[i] = num[i] >= 'a' ? num[i] - 32 : num[i];
LL temp = dec(num, n);
if (temp)
ced(temp, d);
else
cout << 0;
return 0;
}