//
// 任意进制的转换
void turn(string X, int M, int N)
{
//int M = 10, N = 2;
vector<int> vec;
int len = X.length();
vector<int> data; //保存M进制下的各个位数
vector<int> output; //保存N进制下的各个位数
for (int i = 0; i<len; i++)
{
data.push_back(X[i] - '0');
}
int sum = 1;
int d = 0;
int k = 0;
while (sum) {
sum = 0;
for (int i = 0; i<len; i++)
{
d = data[i] / N;
sum += d;
if (i == len - 1)
{
output.push_back(data[i] % N);
k++;
}
else {
data[i + 1] += (data[i] % N) * M;
}
data[i] = d;
}
}
if (k == 0)
{
output.push_back(0);
k--;
}
else
{
for (int i = 0; i<k; i++)
{
vec.push_back(output[k - i - 1]);
}
}
for (int i = 0; i < vec.size(); ++i)
cout << vec[i];
cout << endl;
}
emmmm,还没看太懂。