一,问题描述
二,问题分析
该问题最大的难点在于进制之间转换的方法,参考《算法笔记》
三,代码解答
#include<iostream>
using namespace std;
void digui(int i, int k)
{
if (i < k)
{
if (i >= 10)
printf("%c", i + 55); //得到对应的字符
else
cout << i;
}
else
{
int w = i % k; //得余数
digui(i / k, k); //用商再次递归
if (w >= 10) //由于进制转换方法得到的是逆序,所以在递归后再打印输出
printf("%c", w + 55);
else
cout << w;
}
}
int main()
{
int i, k;
while (cin >> i >> k)
{
digui(i, k);
cout << endl;
}
return 0;
}