思路:先建立好转换所用到的字符数组,然后每次将十进制数对进制求余数,在字符数组中找到余数对应的结果放入输出数组中,最后倒着输出输出数组中的数据就可以啦。另外还要注意一下负数的处理。
附已AC代码:
#include<iostream>
using namespace std;
int main()
{
int a,b,temp,num,i;
char ex[16]={'0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F'};
char out[100];
while(cin >> a >> b) //接收输入
{
if(a > 0)
temp = a;
else
temp = -a;
num = 0;
while(temp > b)
{
out[num++] = ex[temp % b];
temp /= b;
}
out[num] = ex[temp];
if(a < 0)
cout << "-";
for(i = num ; i >= 0; --i)
cout << out[i];
cout << endl;
}
return 0;
}